で停止のpythonのためにこのOpenNLPラッパーに関する問題があります。何らかの理由でhttps://github.com/rohithb/openNLP-python-wrapperPythonのOpenNLPラッパートークナイザは、私が(OS X上で作業) nは
を、文検出器は、このラッパーを使用して、動作しません。私はそれで大丈夫ですし、NLTKが提供する文章検出器に切り替えました。問題はOpenNLP Tokenizerに出力を戻すときに始まります。あなたが見ることができるように
import opennlp
import nltk
token = opennlp.OpenNLP("/Users/sven/apache-opennlp-1.6.0", "TokenizerME", "en-token.bin")
pos = opennlp.OpenNLP("/Users/sven/apache-opennlp-1.6.0", "POSTagger", "en-pos-maxent.bin")
def pipeline(start_with, str):
if start_with == "token":
return pos.parse(token.parse(str).decode('utf-8')).decode('utf-8')
elif start_with == "pos":
return pos.parse(str).decode('utf-8')
else:
str = '\n'.join(nltk.sent_tokenize(str))
return pos.parse(token.parse(str).decode('utf-8')).decode('utf-8')
は、最後の「他」の文の下に、私は区切り文字として\ nを使用して、各センテンスをCONCAT:ここではいくつかのサンプルコードです。私はこれをOpenNLP Sentence Splitterの出力フォーマットを模倣するためにここに記述しました:http://opennlp.apache.org/documentation/1.6.0/manual/opennlp.html#tools.sentdetect.detection
問題は、OpenNLPトークナイザは最初の文の後で動作を停止し、この結果だけを返します。例:
teststr = ("This is a sentecene. And this is yet another one.")
pipeline("",teststr)
OUT:
'This_DT is_VBZ a_DT sentecene_NN ._.'
この問題が発生したか、可能な解決策は何ができるか理由を任意のアイデア?ありがとう!
@Amadanとまったく同じです。パーサは、単一の文が必要です。だから 'nltk.sent_tokenize(str)'を使い、そのリストを繰り返し処理してください。また、ラッパーの実装は本当に基本的です。だから、コードを読み、必要な変更を加えてください。 – Rohith