Python TFIDFvectorier抛出:空词汇表;也许文档中只包含停止词

2024-10-03 21:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用语句sklearn.feature\u extraction.text import TfidfVectorizer导入我的矢量器。我有一个非常大的JSON文件,我根据字段名转换成更小的字符串列表,它包含文章数据

现在我正在尝试对文章文本和标题的字符串列表执行tf-idf;我设法解决了一些错误,但我似乎无法解决一个“空洞的词汇;也许文件中只包含“停止”字。正如我在其他帖子中看到的那样,我尝试过拆分方法,但它并没有解决我的问题。与我所看到的其他帖子相比,奇怪的是,我的print语句可以获得特性名称,但最后却出现了错误。所以我的输出基本上是这样的:

[u'best',u'millennial'…] 回溯。。。数值误差

这是我目前的代码:

import json
from sklearn.feature_extraction.text import TfidfVectorizer

import nltk
from nltk.corpus import stopwords

with open('articles_metadata.json', 'r') as articles_data:
    articles_data = json.loads("[" +
                               articles_data.read().replace("}\n{", "},\n{") +
                               "]")

# print('Entering for: ')
#
counti = 0
for i in articles_data:
    if counti % 300 == 0 and "url" in i:
    # if "url" in i:

        for a, b in i.items():
            url = [sub['url'] for sub in articles_data]

            user_id = [sub['_id'] for sub in articles_data]

            title = [sub['title'] for sub in articles_data]

            article_keywords = [sub['article_keywords'] for sub in articles_data]

            article_text = [sub['article_text'] for sub in articles_data]

            metadata = [sub['metadata'] for sub in articles_data]

            vectorizer = TfidfVectorizer()
            for iterx in article_text:
                iterx=[iterx]
                for line in iterx:
                    iterx=line.split(",")
                X = vectorizer.fit_transform(iterx)
                print(vectorizer.get_feature_names())

    counti += 1
    break

我还附上了我的终端/输出的屏幕截图

谢谢

Output


Tags: textinimportjsonurlfordataarticle