英文词频统计
本帖最后由 2830680393 于 2023-7-1 10:23 编辑有一个较长的英文txt文档,目前只会单个单词的词频统计,求问怎么进行多个单词的词频统计,如climate change,climate action(仅为举例,实际上自己也不确定有哪些需要统计词频的词组)的词频统计。
用python或者是其他工具都可以,烦请各位大佬指点指点! 你可以使用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' 替换为实际的文档路径。你还可以根据需要进行其他的文本预处理操作,例如删除停用词或进行词干提取。 如果你想用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)
如果你想统计其他的单词或短语,你只需要修改正则表达式即可。 要进行多个单词的词频统计,您可以使用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。
希望这可以帮助到您!如果您有任何其他问题,请随时向我提问。 gpt 大队{:10_266:} sfqxx 发表于 2023-7-1 09:50
gpt 大队
Hehe
页:
[1]