当前位置: 首页 > 知识库问答 >
问题:

在句子层次上找出每个单词的频率

梁俊友
2023-03-14

我有一个文本文件,其中的文字是语音标记的一部分。文件可以在这里看到。因此,每个单词及其标记都在一行中。句子由标记空间划分。我正在尝试创建一个程序,1)查找频率高于1的单词,包括句子级别的标记名词、动词、ADJ和ADV 2)打印找到的频率总和。我创建的程序错误地计算了频率,因为它在前面的句子中添加了相同单词的频率。这不是我想要的。我想计算每个句子中项目(单词和标记)的频率,而不累积之前句子的频率。有人能帮我完成这项任务吗?到目前为止,我的代码如下:

while True:
    try:
        file_to_open =Path("Please, insert your file path: "))
        with open(file_to_open,'r', encoding="utf-8") as f:
            sentences = f.read()
            break   
    except FileNotFoundError:
        print("\nFile not found. Better try again")
    except IsADirectoryError:
        print("\nIncorrect Directory path.Try again")


units=sentences.split('<<SPACE>>')    


print(len(units))
count={}

w=open('Alice_repetitions_sentence_AnaB.txt','w')
for sentence_num, unit in enumerate(units, 1):
    lines=unit.split('\n')
    total_count=len(lines)
    for s in lines:
        if s in count:
            count[s]+=1
     
        else:
            count[s]=1
for key in count:

    if 'VERB' in key and count[key] >1:
        print(sentence_num,key, count[key])
    elif 'NOUN' in key and count[key] >1:
        print(sentence_num,key, count[key])
    elif 'ADJ' in key and count[key] >1:
        print(sentence_num,key, count[key])
    elif 'ADV' in key and count[key] >1:
        print(sentence_num,key, count[key])
    

我想要的输出应该是:

句子1:单词1-4,单词2-3,单词3-8,依此类推。。重复项目:3

句子2:单词1-4,单词2-3,单词3-8,单词4-10等等。。重复项目:4。

句子3:单词1-4,单词2-3,单词3-8,单词4-10,单词5-15等等。。重复项目:5。

共有1个答案

湛鸿
2023-03-14
from collections import Counter
def word_count(fname):
    with open(fname) as f:
            return Counter(f.read().split())

print("Number of words in the file :",word_count("test.txt"))

计算单词频率的简化版本

 类似资料:
  • 问题内容: 我正在编写一个非常基本的Java程序,该程序可以计算句子中每个单词的频率,到目前为止,我设法做到了这一点 我已经提取了每个字符串并将其存储在数组中,现在的问题实际上是如何计算每个“单词”重复出现的次数以及如何显示以使重复的单词不会多次显示,您能帮我这个忙吗?一个? 问题答案: 使用以单词为键的地图并将其计为值,像这样 如果不允许使用java.util,则可以使用一些排序算法对arr进行

  • 我想计算一下给定句子中出现了多少个单词。我使用的是C编程语言。它不能计算最后一个字。在给定的字符串中,它计算每个单词发生的次数。如果有像这样的句子,那么程序应该算。但在我的情况下,它不算作。而不是计算,然后: 我的代码:

  • 问题内容: 我正在尝试反转每个句子的第二个单词 如果给定的字符串是: 所需的输出应为: 我当前的输出是: 我无法达到所需的输出。不知道我在做什么错 这是我的代码 问题答案: 您可以解决各种问题的简便方法!只需使用一个将指示 偶数 或 奇数 位置的变量,更准确地说是任何单词都将被反转! 查看我在您的代码中进行的以下修改,仅添加了三行: 输入项 我叫xyz 输出: 我的eman是zyx

  • 问题内容: 如果我有英文文章或英文小说,并且想计算每个单词出现多少次,用Java编写的最快算法是什么? 有人说您可以使用Map ()完成此操作,但我想知道如何知道关键字是什么?每篇文章都有不同的词,您如何知道“关键”词,然后在其数量上加上一个? 问题答案: 这个数字“我是”只是一个字

  • 给定一个句子,我希望能够数出每个单词中有多少个元音。 示例输入: 示例输出: 我最初的想法是有2个同时循环。第一个循环直到满足EOF以结束程序,第二个(嵌套的)同时循环将运行直到满足空格 (" ") ,同时还对当前单词中的元音求和。一旦遇到空格,它将打印出元音的当前值,第二个同时循环将结束并重新开始(元音计数器重置回0)。 这是我为此编写的代码: 然而,这导致语法错误,我不能找出我的错误。 第6行

  • 本文向大家介绍Java程序可反转句子中的每个单词,包括了Java程序可反转句子中的每个单词的使用技巧和注意事项,需要的朋友参考一下 句子中的每个单词都可以颠倒,并以与以前相同的顺序显示单词。一个例子如下: 演示此过程的程序如下。 示例 输出结果 现在让我们了解上面的程序。 首先,显示原始字符串。然后,方法用于将所有单词存储在数组strWords []中。证明这一点的代码片段如下所示- 字符串rev