使用Python编编写文本处理工具,实现从文本文件中提取关键字、计算词频或文本相似度
时间: 2024-01-29 15:02:25 浏览: 84
基于Python实现分析文本数据的词频
好的,这是一个常见的文本处理任务,我们可以使用Python中的一些库来实现。以下是一个简单的示例代码,可以提取文本文件中的关键字并计算词频:
```python
import jieba
from collections import Counter
# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用结巴分词进行分词
words = jieba.lcut(text)
# 过滤掉一些无意义的词性
filtered_words = []
for word in words:
if len(word) > 1 and word != '\r\n':
filtered_words.append(word)
# 计算词频
word_counts = Counter(filtered_words)
for word, count in word_counts.most_common():
print(word, count)
```
如果要计算文本相似度,可以使用Python中的文本相似度计算库,如gensim或scikit-learn。以下是一个使用gensim计算文本相似度的示例代码:
```python
from gensim import corpora, models, similarities
# 读取文本文件
with open('text1.txt', 'r', encoding='utf-8') as f:
text1 = f.read()
with open('text2.txt', 'r', encoding='utf-8') as f:
text2 = f.read()
# 分词
texts = [jieba.lcut(text1), jieba.lcut(text2)]
# 构建词典
dictionary = corpora.Dictionary(texts)
# 构建语料库
corpus = [dictionary.doc2bow(text) for text in texts]
# 计算TF-IDF值
tfidf = models.TfidfModel(corpus)
# 构建索引
index = similarities.MatrixSimilarity(tfidf[corpus])
# 计算相似度
similarity = index[tfidf[dictionary.doc2bow(jieba.lcut('这是要比较的文本'))]][1]
print(similarity)
```
以上代码仅供参考,实际使用时还需要根据具体需求进行修改。
阅读全文