Pythonを使って文から固有名詞を削除するために使用できるパッケージはありますか?Pythonを使って文から固有名詞を削除する方法はありますか?
NLTK、Stanford、Text Blobのようないくつかのパッケージは知っていますが(名前を削除しますが)大文字で始まり、固有名詞ではない多くの単語も削除します。
また、私は名前の辞書を持つことはできません。データが膨大になり、データがDBに取り込まれたままになるので、私は拡張され続けるでしょう。
Pythonを使って文から固有名詞を削除するために使用できるパッケージはありますか?Pythonを使って文から固有名詞を削除する方法はありますか?
NLTK、Stanford、Text Blobのようないくつかのパッケージは知っていますが(名前を削除しますが)大文字で始まり、固有名詞ではない多くの単語も削除します。
また、私は名前の辞書を持つことはできません。データが膨大になり、データがDBに取り込まれたままになるので、私は拡張され続けるでしょう。
固有名詞である単一単語を削除する場合は、nltk
を使用して問題の文章にタグを付け、固有名詞であるタグを含むすべての単語を削除できます。
>>> import nltk
>>> nltk.tag.pos_tag("I am named John Doe".split())
[('I', 'PRP'), ('am', 'VBP'), ('named', 'VBN'), ('John', 'NNP'), ('Doe', 'NNP')]
デフォルトタガーは2つだけ固有名詞タグを持っているPenn Treebank POS tagsetを使用しています:NNP
とNNPS
だからあなただけの次の操作を実行できます。今すぐ
>>> sentence = "I am named John Doe"
>>> tagged_sentence = nltk.tag.pos_tag(sentence.split())
>>> edited_sentence = [word for word,tag in tagged_sentence if tag != 'NNP' and tag != 'NNPS']
>>> print(' '.join(edited_sentence))
I am named
、単なる警告として、 POS taggingは100%正確ではなく、あいまいな単語を間違えることがあります。また、本来マルチワードなので、Named Entitiesをこのようにキャプチャしません。
これは助けになるかもしれません:http://stackoverflow.com/questions/17669952/finding-proper-nouns-using-nltk-wordnet –
これを重複としてマークしています(同じ質問を昨日聞きました):http://stackoverflow.com/q/39610137/6313992 –
こんにちはNeeraj、これは私が説明したことを行います。それは、大文字で始まる単語も固有名詞ではなく、適切な名詞であるとみなします。 – Pri