Я работаю над проектом НЛП и надеюсь на токенизацию предложений и подсчет различных токенов.Иногда я надеюсь, что несколько слов будут фразой и не будут считать слова внутри фразы.
Я нашел CountVectorizer в scikit-learn полезным для подсчета фраз, но я не мог понять, как удалить словавнутри фраз.
Например:
words = ['cat', 'dog', 'walking', 'my dog']
example = ['I was walking my dog and cat in the park']
vect = CountVectorizer(vocabulary=words, ngram_range=(1,2))
dtm = vect.fit_transform(example)
print(dtm)
Я получил:
>>> vect.get_feature_names()
['cat', 'dog', 'walking', 'my dog']
>>> print(dtm)
(0, 0) 1
(0, 1) 1
(0, 2) 1
(0, 3) 1
Что я хочу, это:
>>> print(dtm)
(0, 0) 1
(0, 2) 1
(0, 3) 1
Но яхотите сохранить 'dog'
в словаре, потому что он может появиться сам по себе в другом тексте.