【发布时间】:2019-03-31 14:00:01
【问题描述】:
CountVectorizer 能否用于识别一组单词是否出现在语料库中,无论顺序如何?
它可以做有序短语:How can I use sklearn CountVectorizer with mutliple strings?
但就我而言,这组单词不会恰好落在每个单词的旁边,因此对整个短语进行标记然后尝试在某些文本文档中查找将导致零查找
我的梦想是让以下事情发生:
import numpy as np
from sklearn import feature_extraction
sentences = [ "The only cool Washington is DC",
"A cool city in Washington is Seattle",
"Moses Lake is the dirtiest water in Washington" ]
listOfStrings = ["Washington DC",
"Washington Seattle",
"Washington cool"]
vectorizer = CountVectorizer(vocabulary=listOfStrings)
bagowords = np.matrix(vectorizer.fit_transform(sentences).todense())
bagowords
matrix([[1, 0, 1],
[0, 1, 1],
[0, 0, 0],])
实际问题需要更多的词介于两者之间,因此在此处删除停用词不是一个有效的解决方案。任何建议都会很棒!
【问题讨论】:
-
既然你说的是“不分先后顺序”,那么如果句子中包含“DC代表华盛顿哥伦比亚特区”,它仍然是有效匹配吗?在这里,DC 在华盛顿之前有很多词。
-
是的,这仍然是一个有效的匹配!
标签: python-3.x scikit-learn sklearn-pandas countvectorizer