我有波斯语的一些文本文件。每个文件包含很多句子,每个句子都在一个新行中。在每个句子的前面都有一个标签,然后是一个单词,然后是一个标签,然后是一个英文单词。一些文件中的这些英文单词是2,有些是3,有些是5,有些则是或多或少。实际上,他们展示了句子类。我必须分别计算每个班级的总词数(只计算句子的单词而不是单词后面的单词)。为此,我必须将文件更改为列表,以便我可以实现句子。现在的问题是,我应该如何编写代码,它分别返回每个类的总单词。以下是例句。
corpus = []
def CountWords (file):
with open (file, encoding = "utf-8") as f1:
for line in f1:
t = line.strip().split("\t")
corpus.append(t)
for row in corpus:
if row[2] != row[2]:
现在我不知道如何继续。如果有人可以提供帮助,我会非常感激。 (我没有编程背景。)
答案 0 :(得分:0)
尝试在纸上制定你的算法,然后将其转换为Python:我相信你会自己找到你的解决方案。
如果您遇到问题或错误,请在此处发布您的问题,我们将很乐意为您提供帮助。
建议:
答案 1 :(得分:0)
如果我找到你,那么下一个代码可能会有效。请注意,我使用的是Python 3.x。
from collections import Counter
counter = Counter()
with open(filename, encoding='utf-8') as f:
for line in f:
*persian_words, word_class = line.strip().split()
counter[word_class] += len(persian_words) - 1
# Print the top 10 word classes with respective number of Persian words
for word_class, count in counter.most_common(10):
print('{}\t{}'.format(word_class, count))