Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sklearn TFIDFvectorier不';行不通_Python_Scikit Learn_Tfidfvectorizer - Fatal编程技术网

Python sklearn TFIDFvectorier不';行不通

Python sklearn TFIDFvectorier不';行不通,python,scikit-learn,tfidfvectorizer,Python,Scikit Learn,Tfidfvectorizer,我试图用一个函数作为分析器来做TF-IDF。此函数返回单词ngrams 我的问题是,当我尝试fit_transform函数时,它似乎停止了执行,并且什么也不做。我不知道为什么,也没有找到任何解决办法。我用的是水蟒导航器。代码如下: from sklearn.feature_extraction.text import TfidfVectorizer def ngrams(string, n=3): string = re.sub(r'[,-./]|\sBD',r'', string)

我试图用一个函数作为分析器来做TF-IDF。此函数返回单词ngrams

我的问题是,当我尝试fit_transform函数时,它似乎停止了执行,并且什么也不做。我不知道为什么,也没有找到任何解决办法。我用的是水蟒导航器。代码如下:

from sklearn.feature_extraction.text import TfidfVectorizer
def ngrams(string, n=3):
    string = re.sub(r'[,-./]|\sBD',r'', string)
    ngrams = zip(*[string[i:] for i in range(n)])
    return [''.join(ngram) for ngram in ngrams]

def main():
    termList = getListofTerms(path)
    print("Start TF-IDF")
    vectorizer = TfidfVectorizer(min_df=1, analyzer=ngrams)
    tf_idf_matrix = vectorizer.fit_transform(termList)
    print("Completed")

if __name__ = '__main__':
    main()
术语列表包含550.000个元素,其中包含1、2、3、4或5个单词。运行代码时的输出为:

In [1]: runfile('test.py', wdir='D:/tests')
Start TD-IDF

In [1]:

它从不打印主函数的最后一行,也不会产生任何错误,因此我真的很困惑,不知道如何解决此问题

您是否尝试过仅使用几个元素来运行它?i、 e.tf_idf_matrix=vectorizer.fit_transform(termList[:500])是的,我试过了,但结果是一样的