我有一个像这样的原始字符串列表;
listtocheck = ['fadsfsfgblahsdfgsfg','adfaghelloggfg','gagfghellosdfhere','blahsgsdfgsdfhellohsdfhgshstring']
我想用这些和列表中的项目列表(而不是本身)执行TfIdf。
mylist = ['blah','hello','here','string']
我正在矢量化此列表;
from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer(analyzer = 'char_wb', ngram_range=(2,3))
listvec = tf.fit_transform(mylist)
这给了我mylist
中事物的tfidf。我想做的是检查mylist
中的ngrams在listtocheck
的每个项目中出现的次数,然后根据ngram在所有项中出现的总次数执行TfIdf listtocheck
答案 0 :(得分:0)
为了实现这一点,我必须先在.fit()
上mylist
,然后在.transform()
上listtocheck
。
这是我最后使用的代码:
from sklearn.feature_extraction.text import TfidfVectorizer
def create_vec(listtocheck,mylist):
tf = TfidfVectorizer(analyzer = 'char_wb',ngram_range=(2,3))
tf.fit(mylist)
X = tf.transform(listtocheck)
return X
vecs = create_vec(listtocheck, mylist)