鱼C论坛

 找回密码
 立即注册
查看: 1916|回复: 5

[已解决]英文词频统计

[复制链接]
发表于 2023-7-1 09:27:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

有一个较长的英文txt文档,目前只会单个单词的词频统计,求问怎么进行多个单词的词频统计,如climate change,climate action(仅为举例,实际上自己也不确定有哪些需要统计词频的词组)的词频统计。
用python或者是其他工具都可以,烦请各位大佬指点指点!
最佳答案
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)
如果你想统计其他的单词或短语,你只需要修改正则表达式即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[i:i+len(word_phrases)] == word_phrases:
            phrase = ' '.join(word_phrases)
            word_counts[phrase] += 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' 替换为实际的文档路径。你还可以根据需要进行其他的文本预处理操作,例如删除停用词或进行词干提取。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
如果你想统计其他的单词或短语,你只需要修改正则表达式即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[word] 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。

希望这可以帮助到您!如果您有任何其他问题,请随时向我提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-1 09:50:27 | 显示全部楼层
gpt 大队
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-1 12:24:20 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 18:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表