C言語関係掲示板

過去ログ

No.1259 単語の切り分け

[戻る] [ホームページ]
No.16621

単語の切り分け
投稿者---AI(2004/09/06 13:11:44)


AIです。
お世話になります。

キーボード入力で、
文章(1文)を打ち込み
その文章を単語に区切りたいのですが、
どのようにしたらいいのか
わかりません。

char word[128];

scanf("%s",word);
で入力文字列を配列wordに格納してから
処理をしようと思います。

例えば、
" 昨日の雨はひどい"

この場合、昨日・雨・ひどいを切り出したいです。
決まった入力文章だと
ポインタをその分だけ進めて
切り出したり出来るのですが、
入力文書は不規則であるとします。
どうぞよろしくお願いします。



No.16622

Re:単語の切り分け
投稿者---YuO(2004/09/06 13:30:56)


>キーボード入力で、
>文章(1文)を打ち込み
>その文章を単語に区切りたいのですが、
>どのようにしたらいいのか
>わかりません。

「単語」とは何ですか?


>" 昨日の雨はひどい"
>この場合、昨日・雨・ひどいを切り出したいです。

「の」「は」は単語ではないとするのですね。
「はひどい」ではなく「ひどい」が単語なのですね。


文章を文節やら単語に分けるというのは,人間は無意識に行っている行為ですが,
プログラムを書くときにはそれをルール化する必要があります。
まずはそれを考えることからはじめてみてはどうでしょうか。



No.16623

Re:単語の切り分け
投稿者---ぽこ(2004/09/06 13:54:45)


>例えば、
>" 昨日の雨はひどい"
>
>この場合、昨日・雨・ひどいを切り出したいです。
>決まった入力文章だと
>ポインタをその分だけ進めて
>切り出したり出来るのですが、
>入力文書は不規則であるとします。
>どうぞよろしくお願いします。

この分野は専門性が高く、自然言語書処理に関わったことがある方でいないと
答えられないと思います。
また、もし答えられる方がいたとしても、掲示板で受け答えできるような
小さなボリュームではないでしょう。
(存在するかどうか分かりませんが)専門書を買うことをお勧めします。
もしくは論文を読むとか。。

#Googleあたりで「自然言語処理」と「形態素解析」をキーワードに調べてみてください。



No.16624

Re:単語の切り分け
投稿者---とおりすがり(2004/09/06 17:25:54)


"すももももももももももものうち"
どう切り分けますか。


No.16625

Re:単語の切り分け
投稿者---シャノン(2004/09/06 18:45:07)


>"すももももももももももものうち"
>どう切り分けますか。

#「もも」が一個冗長なような…w


No.16634

Re:単語の切り分け
投稿者---とおりすがり(2004/09/07 05:57:25)


>>"すももももももももももものうち"
>>どう切り分けますか。
>
>#「もも」が一個冗長なような…w
<すもも>も桃も桃のうち
<すもも>も桃、桃も桃のうち
<すもも>も桃、桃も桃、桃のうち
ただの例です。"コンピュータにどう判断させるかな"という事です。


No.16635

Re:単語の切り分け
投稿者---シャノン(2004/09/07 10:09:45)


>>>"すももももももももももものうち"
>>>どう切り分けますか。
>>
>>#「もも」が一個冗長なような…w
><すもも>も桃も桃のうち
><すもも>も桃、桃も桃のうち
><すもも>も桃、桃も桃、桃のうち

#むー…最初の例しか思いつかなかった。
#脳味噌に柔軟性が足りないようです>俺
#無駄レスごめん

>ただの例です。"コンピュータにどう判断させるかな"という事です。

でも、この例は判別不能でしょう。
"コンピュータにどう判断させるか" もありますが、ある程度
判断させるための条件を満たした文しか受け付けないような
制限もないといけませんね。


No.16683

Re:単語の切り分け
投稿者---sim(2004/09/08 19:15:50)


自然言語処理で形態素解析(単語で切り分け、品詞付け)を行なう場合、単語辞書を用意し、入力文と辞書を比較を行ない単語に切っていくしか無いはずです。
基本的にPCに知識は存在しません。
人が分かる文の区切りでもPCに取っては、0、1の記号列に過ぎないので。。。

入力文を単語に切り分ける作業を行なうのはフリーソフトのchasenかjumanを利用することをおすすめします。
どうしても自分でプログラムを組むならば単語辞書を用意して、最長一致法で組むのが1番簡単だと思います。
正し、精度としてはあまり高くないですが。。。


No.16684

Re:単語の切り分け
投稿者---おどまぼんぎりぼんぎりぼんからさーきゃおーらんと(2004/09/08 19:50:32)


自分でプログラムを作る場合のために簡単にアドバイス

辞書の構造は木構造をベースにしたTrie(トライ)がいいでしょう。
データ件数が100件でも100万件でも検索効率が変わらないと言う
すぐれものです。

>自然言語処理で形態素解析(単語で切り分け、品詞付け)を行なう場合、単語辞書を用意し、入力文と辞書を比較を行ない単語に切っていくしか無いはずです。
>基本的にPCに知識は存在しません。
>人が分かる文の区切りでもPCに取っては、0、1の記号列に過ぎないので。。。
>
>入力文を単語に切り分ける作業を行なうのはフリーソフトのchasenかjumanを利用することをおすすめします。
>どうしても自分でプログラムを組むならば単語辞書を用意して、最長一致法で組むのが1番簡単だと思います。
>正し、精度としてはあまり高くないですが。。。