必要なのはNamed Entity Recognizer (NER) です。入力文が与えられると、NER は文内のさまざまなエンティティを人、組織、製品などとして識別します。次に、製品として認識されたエンティティをチェックし、それに応じて文を保持または破棄できます。非常に単純な可能性の 1 つは、Python で NLTK の名前付きエンティティ認識機能を使用することです。次に例を示します。
import nltk
sent = "Albert Einstein spent many years at Princeton University in New Jersey"
sent1 = nltk.word_tokenize(sent)
sent2 = nltk.pos_tag(sent1)
sent3 = nltk.ne_chunk(sent2)
print sent3
出力は次のようになります。
(S
(PERSON Albert/NNP)
(PERSON Einstein/NNP)
spent/VBD
many/JJ
years/NNS
at/IN
(ORGANIZATION Princeton/NNP University/NNP)
in/IN
(GPE New/NNP Jersey/NNP))
NLTK はこの単純な例ではうまく機能しますが、正直なところ、それがどれほど正確なのか、目的 (製品の識別) に合わせてカスタマイズできるかどうかはわかりません。しかし、スタンフォード NERはカスタマイズ可能で正確であることはわかっているので、上記のリンクを参照してください。