2017-06-28 12 views
0

私はNLTKに新しいですし、私は予想以上に異なる出力を与えている二つの文字列に機能sent_tokenizeを使用し動作していないsent_tokenizeが正しく

1)まず、文字列

sent_tokenize("An uncle is the female sibbling of one's parents. An aunt can also be the wife of an [[uncle]] who is the male sibbling of a parent") 

出力:

["叔父は両親の女性の兄弟です" '叔母は男性の兄弟である[[叔父]]の妻でもあります親」のNG]

2)第刺さ

sent_tokenize("An uncle is the female [[sibbling]] of one's [[parent]]s. An aunt can also be the wife of an [[uncle]] who is the male sibbling of a parent") 

出力:

[ "叔父が女性[[sibbling]である]自分の[[親の]] s。叔母は、親「第二ので、ここで

それが問題になる可能性がありますどのような最初のように2つの文を与えていないの男性sibblingある[[叔父]]の妻になることができますか?

(私たちのように分割し、区切り文字を使用することができます「」と文章を得るが、ここでの問題が何であるかを知りたい)

答えて

0

sent_tokenize機能は英語のみを形成うまく上で動作PUNKTトークナイザを使用しています。

フルストップが必ずしもtを意味するとは限りません彼は文の終わりにいます。例えば、「例えば」または「すなわち」。

トークンを適用する前に、文章が英語で整えられていることを確認してください。

あなたのケースでは、「s」の後の単純なスペースや[[parent]] sを親に置き換えることで問題は解決しますが、これが要件を満たしていない場合は、最初にテキストを入力します。

Punkt tokenizer hereの詳細については、こちらをご覧ください。

0

あり、あなたの文章では何の問題もありませんが、私はあなたが以下のように第二の文を書くことができますね、それが正常に動作します:

sentence2 = "An uncle is the female [[sibbling]] of one's [[parent]]s . An aunt can also be the wife of an [[uncle]] who is the male sibbling of a parent" 

しかし、あなたは角括弧なしの文章内の単語を書く場合は、その後も、それが正常に動作します。私はなぜあなたが角かっこを指定しているのかわかりません。

私のgitHub(https://github.com/rameshjesswani/Semantic-Textual-Similarity/blob/master/nlp_basics/nltk/text_normalization.ipynb)では、すでにNLTKを使った基本的なテキスト処理に取り組んでいます。あなたはそれを見ることができます。