Tfidf с пользовательским списком - PullRequest
0 голосов
/ 10 июня 2019

У меня есть список необработанных строк, которые выглядят следующим образом:

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)

Это дает мне tfidf вещей в mylist.Я хотел бы иметь возможность проверить, сколько раз нграммы из mylist появляются в каждом элементе listtocheck, а затем выполнять TfIdf на основе общего числа раз, когда нграм появляется во всех строках вlisttocheck

1 Ответ

0 голосов
/ 11 июня 2019

Чтобы достичь этого, мне сначала пришлось .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)
...