读取文本,分词并进行统计词频
时间: 2023-07-11 07:19:42 浏览: 48
这里提供一个Python实现的例子,使用了jieba分词和collections模块的Counter函数进行词频统计。
```python
import jieba
from collections import Counter
# 读取文本文件
with open("input.txt", "r", encoding="utf-8") as f:
text = f.read()
# 分词
seg_list = jieba.cut(text)
# 统计词频
word_counts = Counter(seg_list)
# 输出前10个出现频率最高的词和对应的词频
for word, count in word_counts.most_common(10):
print(word, count)
```
需要注意的是,使用之前需要确保已经安装了jieba和collections模块。可以使用`pip install jieba`和`pip install collections`命令进行安装。此外,需要将代码中的"input.txt"替换成要读取的文本文件的路径。
相关问题
文本分词后如何统计词频
可以使用Python中的NLTK库进行文本分词和词频统计。首先,使用NLTK库中的分词器对文本进行分词,然后使用Python中的字典数据结构来统计每个词出现的次数。具体实现可以参考以下代码:
```python
import nltk
from collections import Counter
# 读取文本文件
with open('text.txt', 'r') as f:
text = f.read()
# 使用NLTK库中的分词器对文本进行分词
tokens = nltk.word_tokenize(text)
# 使用Python中的字典数据结构来统计每个词出现的次数
word_freq = Counter(tokens)
# 输出词频统计结果
for word, freq in word_freq.most_common():
print(word, freq)
```
其中,`text.txt`是待分词的文本文件,`nltk.word_tokenize()`函数可以将文本分成单词,`Counter()`函数可以统计每个单词出现的次数,`most_common()`方法可以按照词频从高到低排序并输出结果。
怎么分词后的csv文件 读取并进行词频统计
好的,下面我来给你讲一下如何读取分词后的CSV文件并进行词频统计。
假设我们已经将文本进行了分词,并将结果保存到了CSV文件中。CSV文件的每一行代表一个文本,每个单元格代表一个分词结果。例如,下面是一个包含两个文本的CSV文件:
```
text1,This,is,a,sample,text,for,tokenization
text2,It,contains,multiple,sentences,and,punctuation.
```
接下来,我们可以使用Python中的csv模块来读取CSV文件,并对每个文本进行分词和词频统计。以下是读取CSV文件并进行词频统计的示例代码:
```python
import csv
from collections import Counter
import nltk
with open('example.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
# 将每行文本进行分词
tokens = nltk.word_tokenize(row[1])
# 统计词频
word_counts = Counter(tokens)
# 打印出现频率最高的前10个词
top_10 = word_counts.most_common(10)
print(top_10)
```
运行以上代码后,会输出每个文本中出现频率最高的前10个词,结果类似下面这样:
```
[('for', 1), ('This', 1), ('is', 1), ('a', 1), ('sample', 1), ('text', 1), ('tokenization', 1)]
[('It', 1), ('contains', 1), ('multiple', 1), ('sentences', 1), ('and', 1), ('punctuation', 1), ('.', 1)]
```
以上代码中,我们使用csv模块读取CSV文件,并对每个文本进行分词和词频统计,然后打印出现频率最高的前10个词。
希望这个例子可以帮助你理解如何读取分词后的CSV文件并进行词频统计。