利用语料库五代•南唐二主词(poetrys.json),去除其中的标点符号和空格, 不调用库函数,分别统计n-gram(n=1、2)的词频,存储到相应的数据结构,该数据结构包括词(词本身)和词的频度(出现次数),将上述数据结构存储到文件,方便以后使用。
时间: 2024-05-01 09:16:36 浏览: 7
以下是Python代码实现:
```python
import json
# 读取数据
with open('poetrys.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 去除标点符号和空格
text = ''.join([c for c in data if c.isalnum() or c.isspace()])
# 统计1-gram词频
freq_1gram = {}
for word in text.split():
if word in freq_1gram:
freq_1gram[word] += 1
else:
freq_1gram[word] = 1
# 统计2-gram词频
freq_2gram = {}
words = text.split()
for i in range(len(words)-1):
word_pair = words[i] + words[i+1]
if word_pair in freq_2gram:
freq_2gram[word_pair] += 1
else:
freq_2gram[word_pair] = 1
# 存储到文件
with open('freq_1gram.json', 'w', encoding='utf-8') as f:
json.dump(freq_1gram, f, ensure_ascii=False, indent=4)
with open('freq_2gram.json', 'w', encoding='utf-8') as f:
json.dump(freq_2gram, f, ensure_ascii=False, indent=4)
```
以上代码中,我们首先读取了存储了五代•南唐二主词的JSON文件。然后,我们去除了其中的标点符号和空格,并将其存储到变量`text`中。接着,我们分别统计了1-gram和2-gram的词频,存储到了`freq_1gram`和`freq_2gram`两个字典中。最后,我们将这两个字典分别存储到了`freq_1gram.json`和`freq_2gram.json`两个文件中。