Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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 用Sastrawi词干分析印尼单词_Python_Stemming - Fatal编程技术网

Python 用Sastrawi词干分析印尼单词

Python 用Sastrawi词干分析印尼单词,python,stemming,Python,Stemming,我有一个csv数据集,数据的价值就在这里 所以,我想对数据进行预处理。数据的类型是文本,所以我将进行文本挖掘。但我对词干感到困惑。我尝试过对数据进行词干分析,但结果是所有新闻的字数。我从我的朋友那里得到代码参考,但我想改变。我想更改代码以改进结果。我希望结果是对每一条新闻进行字数统计,而不是分割所有新闻。请帮我更改代码 代码如下: 导入操作系统 作为pd进口熊猫 从导入数据帧中,读取\u csv data=r'D:/SKRIPSI/sample\u 200\u data.csv' df=pd

我有一个csv数据集,数据的价值就在这里

所以,我想对数据进行预处理。数据的类型是文本,所以我将进行文本挖掘。但我对词干感到困惑。我尝试过对数据进行词干分析,但结果是所有新闻的字数。我从我的朋友那里得到代码参考,但我想改变。我想更改代码以改进结果。我希望结果是对每一条新闻进行字数统计,而不是分割所有新闻。请帮我更改代码

代码如下:

导入操作系统
作为pd进口熊猫
从导入数据帧中,读取\u csv
data=r'D:/SKRIPSI/sample\u 200\u data.csv'
df=pd.read\U csv(数据)
打印“DF”,键入(DF['content']),“\n”,DF['content']
isiberita=df['content'].tolist()
打印“DF列表isiberita”,isiberita,类型(isiberita)
df.head()
---------------------------------------------------------
导入nltk
导入字符串
导入操作系统
作为pd进口熊猫
从sklearn.feature\u extraction.text导入TfidfVectorizer
从Sastrawi.Stemmer.StemmerFactory导入StemmerFactory
从nltk.corpus导入停止词
从收款进口柜台
路径='D:/SKRIPSI/sample\u 200\u data.csv'
令牌_dict={}
factory=StemberFactory()
stemmer=factory.create_stemmer()
content_stemmed=map(lambda x:stemmer.stem(x),isiberita)
content\u no\u punc=map(lambda x:x.lower().translate(无、字符串、标点符号),content\u词干)
内容\最终=[]
有关内容_no_punc中的新闻:
word_token=nltk.word_tokenize(新闻)#为每条新闻获取单词标记(将新闻拆分为每个单独的单词)
word_token=[如果不是nltk.corpus.stopwords.words('indonesian')中的单词,则为word_token中的单词,而不是单词[0].isdigit()]#删除印尼语的停止词和数字
content\u final.append(“.join(word\u token))
计数器=计数器()#计数器启动
[counter.update(news.split())用于内容中的新闻_final]#我们分割每条新闻以获得每个单词的计数器

打印(counter.most_common(100))
如果我理解正确,您的问题与此没有直接关系

问题是在处理新闻数据时使用了
counter.update()
。这最终将返回所有新闻的累计字数。 如果要分别计算单个新闻中的单词数,则需要为每个新闻分别提供一个
计数器的实例。类似于以下内容(这将从每条新闻中打印出100个最常见的单词):

完整的演示示例:

>>> content_final = ['foo','foo foo bar','foo baz baz']
>>> for news in content_final:
...     counter = Counter(news.split())
...     print(counter.most_common(1))
...
[('foo', 1)]
[('foo', 2)]
[('baz', 2)]

现场观看:

如何获取印尼语nltk语料库?
>>> content_final = ['foo','foo foo bar','foo baz baz']
>>> for news in content_final:
...     counter = Counter(news.split())
...     print(counter.most_common(1))
...
[('foo', 1)]
[('foo', 2)]
[('baz', 2)]