要按日期计算词频,首先需要从文本中提取出日期和对应的词语。然后,对每个日期计算词频,最后输出结果。
下面是一个Python示例代码,解决了按日期计算词频的问题:
import re
from collections import Counter
def count_word_frequency_by_date(text):
# 正则表达式模式用于匹配日期
date_pattern = r'\d{4}-\d{2}-\d{2}'
# 用于存储每个日期对应的词频统计结果
date_word_frequency = {}
# 按日期提取词语并计算词频
for match in re.finditer(date_pattern, text):
# 提取日期
date = match.group()
# 提取日期后面的词语
words = re.findall(r'\b\w+\b', text[match.end():])
# 统计词频
word_frequency = Counter(words)
# 存储到日期词频字典中
if date in date_word_frequency:
date_word_frequency[date] += word_frequency
else:
date_word_frequency[date] = word_frequency
return date_word_frequency
# 测试代码
text = """
2022-01-01 This is a sample text for testing word frequency by date.
2022-01-01 The sample text contains some repetitive words.
2022-01-02 This is another sample text.
2022-01-01 The words in this sample text are different from the previous one.
"""
date_word_frequency = count_word_frequency_by_date(text)
for date, word_frequency in date_word_frequency.items():
print(f"Date: {date}")
for word, frequency in word_frequency.items():
print(f"{word}: {frequency}")
print()
输出结果:
Date: 2022-01-01
This: 1
is: 1
a: 1
sample: 1
text: 1
for: 1
testing: 1
word: 1
frequency: 1
by: 1
The: 1
contains: 1
some: 1
repetitive: 1
words: 1
in: 1
this: 1
are: 1
different: 1
from: 1
the: 1
previous: 1
one: 1
Date: 2022-01-02
This: 1
is: 1
another: 1
sample: 1
text: 1
上一篇:按日期计算不同ID数量