用 Python 分析文本可以从简单统计到自然语言处理(NLP),逐步深入。下面我按“由浅入深”的方式给你一个实用指南,并附上代码示例。
with open("example.txt", "r", encoding="utf-8") as f:
text = f.read()
print(len(text)) # 字符数
print(text.split()) # 按空格分词
print(len(text.split())) # 词数
from collections import Counter
words = text.lower().split()
word_counts = Counter(words)
print(word_counts.most_common(10))
import jieba
from collections import Counter
words = jieba.lcut(text)
word_counts = Counter(words)
print(word_counts.most_common(10))
安装:
pip install jieba
import re
text = re.sub(r"\W+", " ", text) # 去标点
text = text.lower()
import matplotlib.pyplot as plt
words, counts = zip(*word_counts.most_common(10))
plt.bar(words, counts)
plt.show()
pip install snownlp
from snownlp import SnowNLP
s = SnowNLP("这部电影真的很好看")
print(s.sentiments) # 越接近1越正面
import jieba.analyse
keywords = jieba.analyse.extract_tags(text, topK=10)
print(keywords)
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
docs = ["我喜欢Python", "我讨厌Java"]
vec = TfidfVectorizer().fit_transform(docs)
print(cosine_similarity(vec[0], vec[1]))
import jieba
from collections import Counter
text = "Python 很强大,Python 很流行"
words = jieba.lcut(text)
counter = Counter(words)
print(counter.most_common())
如果你愿意,可以告诉我:
我可以直接帮你写一套可用的分析脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。