蒙古文词频统计python
时间: 2023-07-08 22:44:08 浏览: 152
可以使用Python中的collections模块中的Counter类来实现蒙古文词频的统计。具体实现步骤如下:
1. 读取蒙古文文本文件,将文件内容存储到一个字符串变量中。
2. 对字符串变量进行分词处理,将每个词存储到一个列表中。
3. 使用collections模块中的Counter类对列表中的词进行统计。
4. 对统计结果进行排序,输出前N个高频词及其词频。
以下是代码示例:
```python
import collections
# 读取蒙古文文本文件
with open('mongolian_text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词处理
words = text.split()
# 统计词频
counter = collections.Counter(words)
# 排序并输出前N个高频词及其词频
top_n = 10
for word, freq in counter.most_common(top_n):
print(word, freq)
```
需要注意的是,蒙古文的分词处理可能需要使用专门的分词工具或库来实现,这里只是简单地使用空格进行分割。同时,统计结果也可能会受到分词效果的影响,因此需要根据实际情况进行调整。
相关问题
蒙古文拉丁转写和词频统计python
以下是一个将蒙古文文本进行拉丁转写并进行词频统计的 Python 代码示例:
```python
import re
from collections import Counter
def mongolianToLatin(text):
latin_map = {
'а': 'a', 'ә': 'ä', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd',
'е': 'e', 'ё': 'ë', 'ж': 'j', 'з': 'z', 'и': 'i', 'й': 'y',
'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 'ө': 'ö',
'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ү': 'ü',
'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sch',
'ъ': '', 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya'
}
latin_text = ''
for char in text:
latin_char = latin_map.get(char.lower(), char)
if char.isupper():
latin_char = latin_char.capitalize()
latin_text += latin_char
return latin_text
def countWords(text):
# 分词
words = re.findall(r'\b\w+\b', text)
# 统计词频
freq = Counter(words)
return freq
# 示例
mongolian_text = 'Монгол улсын их сургуулийн нэр төр. Монгол улсын их сургуулийн нэр төр.'
latin_text = mongolianToLatin(mongolian_text)
freq = countWords(latin_text)
print(freq) # 输出:Counter({'mongol': 2, 'ulsyn': 2, 'ih': 2, 'surguulin': 2, 'ner': 2, 'tör': 2})
```
在这个示例中,我们先将蒙古文文本进行拉丁转写,然后对转写后的文本进行词频统计。这个示例中的代码和之前分别实现拉丁转写和词频统计的代码非常相似,只是将它们合并在一起。
蒙古文词频统计结果放到文件夹python
以下是一个将蒙古文文本进行词频统计并将结果保存到文件的 Python 代码示例:
```python
import re
from collections import Counter
def countWords(text):
# 分词
words = re.findall(r'\b\w+\b', text)
# 统计词频
freq = Counter(words)
return freq
def saveToFile(freq, filepath):
with open(filepath, 'w', encoding='utf-8') as f:
for word, count in freq.items():
f.write(word + '\t' + str(count) + '\n')
# 示例
mongolian_text = 'Монгол улсын их сургуулийн нэр төр. Монгол улсын их сургуулийн нэр төр.'
freq = countWords(mongolian_text)
saveToFile(freq, 'word_freq.txt')
```
在这个示例中,我们先对蒙古文文本进行词频统计,然后将统计结果保存到文件 'word_freq.txt' 中。文件中每一行包含一个单词和它的词频,中间用制表符分隔。
如果需要处理多个文本并将它们的词频统计结果保存到不同的文件中,可以使用一个循环来遍历文件列表并对每个文件进行处理。例如:
```python
filepaths = ['text1.txt', 'text2.txt', 'text3.txt']
for filepath in filepaths:
with open(filepath, 'r', encoding='utf-8') as f:
text = f.read()
freq = countWords(text)
saveToFile(freq, filepath + '.freq')
```
这个示例中,我们先定义一个文件列表 filepaths,然后使用一个循环遍历列表中的每个文件并对它们进行词频统计。将每个文件的词频统计结果保存到以文件名加上 '.freq' 后缀的文件中。
阅读全文