文本挖掘实例python
时间: 2023-06-18 19:05:56 浏览: 131
以下是一个简单的文本挖掘实例,使用Python实现:
1. 导入必要的库
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import re
import nltk
from nltk.corpus import stopwords
```
2. 导入数据
```python
df = pd.read_csv('news.csv')
```
3. 数据清洗
```python
# 删除缺失值
df.dropna(inplace=True)
# 去除文本中的标点符号和数字
df['text'] = df['text'].apply(lambda x: re.sub('[^a-zA-Z]', ' ', x))
# 转换为小写
df['text'] = df['text'].apply(lambda x: x.lower())
# 分词
nltk.download('punkt')
df['text'] = df['text'].apply(lambda x: nltk.word_tokenize(x))
# 去除停用词
nltk.download('stopwords')
stop_words = set(stopwords.words('english'))
df['text'] = df['text'].apply(lambda x: [word for word in x if word not in stop_words])
```
4. 词频统计
```python
# 将分词后的文本转换为字符串
df['text'] = df['text'].apply(lambda x: ' '.join(x))
# 统计词频
from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer(max_features=1000)
X = cv.fit_transform(df['text']).toarray()
```
5. 可视化
```python
# 绘制词云图
from wordcloud import WordCloud
cloud = WordCloud(width=800, height=600, background_color='white').generate(' '.join(df['text']))
plt.figure(figsize=(8, 6), facecolor=None)
plt.imshow(cloud)
plt.axis("off")
plt.tight_layout(pad=0)
plt.show()
# 绘制柱状图
freq_words = pd.DataFrame(X, columns=cv.get_feature_names())
top_words = freq_words.sum().sort_values(ascending=False)[:20]
sns.barplot(x=top_words.values, y=top_words.index)
plt.show()
```
以上是一个简单的文本挖掘实例,主要包括数据清洗、词频统计和可视化等步骤。在实践中,还可以使用更复杂的技术和模型来进行文本挖掘,例如情感分析、主题建模等。
阅读全文