質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

4109閲覧

文字列を単語で分割する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2017/04/24 08:39

環境:.NET Framework 4.5.1
使用言語:VB.NET

Stringに格納されている文字列を「単語単位」で分割する方法はどうすればよろしいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

MeCabという日本語の形態素解析ライブラリ、およびその.NET用ラッパーであるNMeCabを使った実装の簡単なサンプルです。
ご利用の際はライセンス等お調べの上でお願いします。

<準備>

  • Visual Studioで新規プロジェクトを作成(以下のサンプルではコンソールアプリ)
  • ツール > NuGetパッケージマネージャー > ソリューションのNuGetパッケージの管理
  • 「NMeCab」で検索してインストール

コンソールから入力された文字列を単語単位で改行して出力するサンプルです。

vb

1While True 2 Dim input = Console.ReadLine 3 If (input = "") Then 4 Exit While 5 End If 6 7 Dim mecab = MeCabTagger.Create 8 Dim node = mecab.ParseToNode(input) 9 10 While (Not (node) Is Nothing) 11 If (node.CharType <> 0) Then 12 Console.WriteLine(node.Surface) 13 End If 14 15 node = node.Next 16 17 End While 18 19End While

もうちょっと細かい判定など行いたい場合は、「MeCab」「NMeCab」で調べてみてください。

投稿2017/04/24 12:03

oika

総合スコア425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/04/25 00:58

情報ありがとうございます、こちらの内容でも調べていきたいと考えています
guest

0

ベストアンサー

訂正:形態素解析が適切なキーワードのようです。大変失礼しました。
te2jiさんご指摘ありがとうございます!


日本語だと仮定すると、具体的なサイトなどの紹介を適切にできる自身はないのですが「形態要素分析」「形態要素解析」というキーワードで調べてみると参考になるものがいろいろ見つかると思います。

いくつかみたことがあるのですが、品詞の辞書を持っており文法に従って文字を分析していくようなアルゴリズムを採っていると想像してます。とてもじゃないですが素人が真似できそうもありませんw;

一方、英語ですとカンマや空白といった区切り文字が必ず入っているので単語の分割はずっと単純な問題になると思います。しかし、品詞を分析するならばやはり形態要素分析をするようです。

投稿2017/04/24 09:09

編集2017/04/24 09:21
KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/04/24 09:11

あ、ごめんなさい日本語及びアルファベットこみこみでの分割になります こちらも調べましたらワードからの分割はあったのですが言語のみでのは見つからなかったもので…
KSwordOfHaste

2017/04/24 09:15

実際に使ったことがないのではっきりとはわかりませんが、日本語の文章にアルファベットが含まれていたらNGとなるでは応用が限られてしまうと思うので、「それなりに」扱えるものになっているのではないか・・・と想像してました。あくまで想像ですが。
退会済みユーザー

退会済みユーザー

2017/04/24 09:16

> KSwordOfHaste さん 「形態要素分析」「形態要素解析」って言葉はあまり使わない気がします。 検索ワードとしては、「形態素解析」が適切なのでは?
KSwordOfHaste

2017/04/24 09:22

おっしゃるとおりのようです。wikipediaの見出しもそうですね。 ご指摘いただき大変ありがとうございます。 間違えて覚えてしまうとイカンですね・・・
退会済みユーザー

退会済みユーザー

2017/04/25 00:56

ライブラリを使用せず自身で実装できたらと考えていたのですが、この件は大学が取り込むレベルの代物なので残念ですが長期目標として後回しにします。 みなさんご相談ありがとうございました、形態素解析について追って調べていきたいと考えています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問