2830680393 发表于 2023-7-1 09:27:45

英文词频统计

本帖最后由 2830680393 于 2023-7-1 10:23 编辑

有一个较长的英文txt文档,目前只会单个单词的词频统计,求问怎么进行多个单词的词频统计,如climate change,climate action(仅为举例,实际上自己也不确定有哪些需要统计词频的词组)的词频统计。
用python或者是其他工具都可以,烦请各位大佬指点指点!

isdkz 发表于 2023-7-1 09:28:33

你可以使用Python中的字符串处理和计数方法来进行多个单词的词频统计。以下是一个示例代码,用于统计一个较长的英文文档中指定单词组合的出现次数:

import re
from collections import Counter

def count_word_phrases(file_path, word_phrases):
    # 读取文档内容
    with open(file_path, 'r', encoding='utf-8') as file:
      text = file.read().lower()
   
    # 去除标点符号和多余的空格
    text = re.sub(r'[^\w\s]', '', text)
    text = re.sub(r'\s+', ' ', text)
   
    # 将文本拆分为单词列表
    words = text.split()
   
    # 统计单词组合出现的次数
    word_counts = Counter()
    for i in range(len(words) - len(word_phrases) + 1):
      if words == word_phrases:
            phrase = ' '.join(word_phrases)
            word_counts += 1
   
    return word_counts

# 示例用法
file_path = 'path_to_your_file.txt'# 将此处替换为实际的文档路径
word_phrases = ['climate', 'change']
result = count_word_phrases(file_path, word_phrases)

# 打印词频统计结果
for word_phrase, count in result.items():
    print(f'{word_phrase}: {count}')


在上面的示例中, file_path 变量应替换为实际的文档路径, word_phrases 变量用于指定要统计的多个单词组合,以列表形式提供。代码将统计指定单词组合在文档中出现的次数,并输出每个组合及其对应的词频统计结果。

请确保你已安装Python并拥有所需的文本文件,将示例中的 'path_to_your_file.txt' 替换为实际的文档路径。你还可以根据需要进行其他的文本预处理操作,例如删除停用词或进行词干提取。

陶远航 发表于 2023-7-1 09:29:48

如果你想用python来统计一个英文文档中多个单词的词频,你可以使用正则表达式来匹配你感兴趣的单词或短语,然后使用collections.Counter来计算它们出现的次数。

例如,如果你想统计climate change和climate action的词频,你可以写一个正则表达式,如r"\\bclimate (change|action)\\b",然后用Counter来创建一个字典,其中键是单词或短语,值是它们出现的次数。

下面是一个简单的代码示例:

import re
from collections import Counter

# 打开文件并读取内容
with open("file.txt", "r") as f:
    text = f.read()

# 定义正则表达式
pattern = r"\\bclimate (change|action)\\b"

# 查找所有匹配的单词或短语
matches = re.findall(pattern, text)

# 创建一个Counter对象
counter = Counter(matches)

# 打印结果
print(counter)
如果你想统计其他的单词或短语,你只需要修改正则表达式即可。

liuhongrun2022 发表于 2023-7-1 09:31:45

要进行多个单词的词频统计,您可以使用Python中的字符串处理和计数功能来实现。下面是一个示例代码,使用Python中的Counter类来实现多个单词的词频统计:

from collections import Counter

def word_frequency(text, words):
    # 将文本中的标点符号替换为空格
    text = text.replace(",", " ").replace(".", " ").replace("!", " ").replace("?", " ").replace(";", " ")

    # 将文本拆分为单词列表
    word_list = text.split()

    # 统计单词出现的频率
    word_counts = Counter(word_list)

    # 提取指定单词的词频统计结果
    result = {word: word_counts for word in words}

    return result

# 示例文本
text = "Climate change is a serious issue. Climate action is needed to mitigate its effects."

# 指定需要统计的单词列表
words = ["climate", "change", "action"]

# 进行词频统计
frequency_result = word_frequency(text.lower(), words)

# 打印结果
for word, count in frequency_result.items():
    print(f"Word: {word}, Count: {count}")
在上述示例中,我们定义了一个word_frequency()函数,它接受一个文本内容和一个需要统计的单词列表作为参数。首先,我们通过替换标点符号,并将文本拆分为单词列表。然后,我们使用Counter类来统计每个单词出现的次数,并将结果存储在一个字典中。最后,我们提取指定单词的词频统计结果,并打印出来。

请注意,示例代码中将文本转换为小写字母以进行不区分大小写的统计。如果您希望区分大小写,请将text.lower()改为text。

希望这可以帮助到您!如果您有任何其他问题,请随时向我提问。

sfqxx 发表于 2023-7-1 09:50:27

gpt 大队{:10_266:}

歌者文明清理员 发表于 2023-7-1 12:24:20

sfqxx 发表于 2023-7-1 09:50
gpt 大队

Hehe
页: [1]
查看完整版本: 英文词频统计