環境:.NET Framework 4.5.1
使用言語:VB.NET
Stringに格納されている文字列を「単語単位」で分割する方法はどうすればよろしいでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答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
総合スコア425
0
ベストアンサー
訂正:形態素解析が適切なキーワードのようです。大変失礼しました。
te2jiさんご指摘ありがとうございます!
日本語だと仮定すると、具体的なサイトなどの紹介を適切にできる自身はないのですが「形態要素分析」「形態要素解析」というキーワードで調べてみると参考になるものがいろいろ見つかると思います。
いくつかみたことがあるのですが、品詞の辞書を持っており文法に従って文字を分析していくようなアルゴリズムを採っていると想像してます。とてもじゃないですが素人が真似できそうもありませんw;
一方、英語ですとカンマや空白といった区切り文字が必ず入っているので単語の分割はずっと単純な問題になると思います。しかし、品詞を分析するならばやはり形態要素分析をするようです。
投稿2017/04/24 09:09
編集2017/04/24 09:21総合スコア18394
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/24 09:15
退会済みユーザー
2017/04/24 09:16
2017/04/24 09:22
退会済みユーザー
2017/04/25 00:56
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/04/25 00:58