Python 尝试读取文本文件并计算定义组中的单词数
我是一个Python新手。我正在尝试创建一个程序来读取文本文件,并在该文本中搜索分组的特定单词(我通过从csv读取预定义的单词)。例如,如果我想为包含“兴奋”、“快乐”和“乐观”等词的“积极”创建自己的定义,csv将包含这些术语。我知道下面的内容很混乱-我正在读取的txt文件包含我从csv读取的三个“肯定”测试词的7次出现,但结果打印出来是25次。我认为这是返回字符数,而不是字数。代码:Python 尝试读取文本文件并计算定义组中的单词数,python,csv,text,sentiment-analysis,Python,Csv,Text,Sentiment Analysis,我是一个Python新手。我正在尝试创建一个程序来读取文本文件,并在该文本中搜索分组的特定单词(我通过从csv读取预定义的单词)。例如,如果我想为包含“兴奋”、“快乐”和“乐观”等词的“积极”创建自己的定义,csv将包含这些术语。我知道下面的内容很混乱-我正在读取的txt文件包含我从csv读取的三个“肯定”测试词的7次出现,但结果打印出来是25次。我认为这是返回字符数,而不是字数。代码: import csv import string import re from collections im
import csv
import string
import re
from collections import Counter
remove = dict.fromkeys(map(ord, '\n' + string.punctuation))
# Read the .txt file to analyze.
with open("test.txt", "r") as f:
textanalysis = f.read()
textresult = textanalysis.lower().translate(remove).split()
# Read the CSV list of terms.
with open("positivetest.csv", "r") as senti_file:
reader = csv.reader(senti_file)
positivelist = list(reader)
# Convert term list into flat chain.
from itertools import chain
newposlist = list(chain.from_iterable(positivelist))
# Convert chain list into string.
posstring = ' '.join(str(e) for e in newposlist)
posstring2 = posstring.split(' ')
posstring3 = ', '.join('"{}"'.format(word) for word in posstring2)
# Count number of words as defined in list category
def positive(str):
counts = dict()
for word in posstring3:
if word in counts:
counts[word] += 1
else:
counts[word] = 1
total = sum (counts.values())
return total
# Print result; will write to CSV eventually
print ("Positive: ", positive(textresult))
我也是一个初学者,但我偶然发现了一个可能有用的过程。读入文件后,在每个空格、制表符和换行符处拆分文本。在你的情况下,我会保持所有的字小写,并包括标点符号在您的分裂呼吁。将其保存为数组,然后使用某种循环对其进行解析,以获得每个“正”字或其他字的实例数 看看这个,特别是“火车”功能: 另外,这个链接,忽略JSON内容,在开始时,文章讨论了情绪分析: 同样适用于此链接:
祝你好运 我查看了您的代码,并将自己的一些代码作为示例进行了介绍。 根据我认为你可能想要的,我有两个想法给你 第一个假设:你想要一个基本的情绪计数? 获得“文本结果”是很好的。然后你对“积极词汇”也做了同样的事——对[积极主义者],我认为这是一个完美的行动?然后你把[积极主义者]变成了一个重要的句子。 你不只是: 1.通过[textresult]传递“停止词”列表 2.合并普通字的两个数据帧[textresult(更少的停止字)和positivelist]——如“内部联接” 3.然后基本上做你的术语频率 4.那么,汇总分数就容易多了 第二个假设:你专注于“兴奋”、“快乐”和“乐观” 你想把文本主题分为这三类? 1.再次停留在[textresult] 2.下载“nrc”和/或“syuzhet”情感配价词典 他们将情绪词分为8组 所以,如果你只想要8个情绪组中的3个(子集) 3.像对待[积极列表]一样处理它 4.再加入一个 抱歉,这有点混乱,但如果我接近你的想法,请告诉我,我们可以联系。
第二个抱歉,我也是一个python新手,我正在将我在R中使用的东西改编成上面提到的python(这也不是很微妙:)一些示例文本可能会有帮助……谢谢!基本上,我正在尝试创建自己的可自定义情绪类别。所以,我并不真正关心这三个词(兴奋、快乐、乐观)——这些只是构成一个类别的例子。例如,如果我想定义积极的含义,我可能会将这些词加上其他词包含在一个列表中,组成一个组。然后我想将文本与该组进行比较,并计算文本与该组中任何单词的匹配数。