求助:使用pysentiment2的tokenize方法返回字母而非单词的解决办法
问题解决:Tokenize返回单词而非单个字母
错误原因
原代码中[lm.tokenize(t) for t in texts]是在遍历字符串texts的每个单个字符,每个t都是单个字母,调用lm.tokenize(t)自然只会返回单个字母的tokens。
修改后的代码
import pysentiment2 as ps import pandas as pd import matplotlib.pyplot as plt texts = 'why it return letter instead of words' # 初始化LM词典的分词器 lm = ps.LM() # 直接对整个文本进行分词,而非遍历单个字符 tokens = lm.tokenize(texts) # 计算情感极性 sentiment = lm.get_score(tokens)['Polarity'] print(tokens) print(sentiment)
关键修改点
- 移除遍历单个字符的列表推导,直接将完整文本传入
lm.tokenize()方法,就能得到以单词为单位的tokens。 - 由于tokens是单个文档的分词结果,无需再用列表推导计算情感,直接调用
lm.get_score(tokens)即可。
内容的提问来源于stack exchange,提问作者Nguyen h
相关产品推荐
相关产品推荐

