csv中文分词去除停用词代码
时间: 2023-11-12 11:06:10 浏览: 438
以下是一个用 Python 实现的简单的中文分词和去除停用词的代码:
```python
import jieba
import re
# 加载停用词表
stopwords = set()
with open('stopwords.txt', 'r', encoding='utf-8') as f:
for line in f:
stopwords.add(line.strip())
# 定义中文分词函数
def chinese_word_cut(text):
# 使用正则表达式去除非中文字符
text = re.sub('[^\u4e00-\u9fa5]', '', text)
# 分词
words = jieba.lcut(text)
# 去除停用词
words = [word for word in words if word not in stopwords]
# 返回分词结果
return words
# 测试代码
text = '这是一段中文文本,包含了一些常见的停用词。'
words = chinese_word_cut(text)
print(words)
```
其中 `jieba` 是一个常用的中文分词库,需要使用 `pip install jieba` 命令安装。停用词表可以自己制作,也可以从网上下载。
相关问题
写一段代码,要求:1.读取/Users/rachel_lrq/Desktop/浙江分词.csv 2.去除停用词/Users/rachel_lrq/Desktop/实习/哈工大停用词表.txt 3.将结果保存在一个新的csv文件中
你可以使用Python的pandas和jieba库来完成这个任务。首先,你需要安装这两个库,可以使用以下命令:
```
pip install pandas jieba
```
接下来,你可以使用以下代码来实现你的需求:
```python
import pandas as pd
import jieba
# 读取CSV文件
df = pd.read_csv('/Users/rachel_lrq/Desktop/浙江分词.csv')
# 读取停用词表
stopwords = set()
with open('/Users/rachel_lrq/Desktop/实习/哈工大停用词表.txt', 'r', encoding='utf-8') as f:
for line in f:
stopwords.add(line.strip())
# 定义分词函数
def segment(sentence):
words = jieba.cut(sentence)
words = [word for word in words if word not in stopwords]
return ' '.join(words)
# 对文本进行分词处理
df['分词结果'] = df['文本内容'].apply(segment)
# 保存结果到新的CSV文件
df.to_csv('/Users/rachel_lrq/Desktop/分词结果.csv', index=False)
```
这段代码会读取指定路径下的CSV文件,然后使用jieba库进行分词,并去除停用词。最后,将处理后的结果保存到一个新的CSV文件中。请确保替换代码中的文件路径为你自己的实际路径。
jupyter 读取自己的csv来去除中文停用词
你可以使用 Python 的 pandas 库来读取 CSV 文件,并使用中文停用词列表来去除停用词。以下是一些示例代码:
```python
import pandas as pd
import jieba
from zhon import hanzi # 用于匹配中文字符的库
from collections import Counter
# 读取 CSV 文件
df = pd.read_csv("your_file.csv")
# 定义中文停用词列表
stop_words = ['的', '了', '在', '是', '我', '有', '和', '就', '不', '人', '都', '一', '一个', '上', '也', '很', '到', '说', '要', '去', '你', '会', '着', '没有', '看', '好', '自己', '这']
# 定义分词函数
def cut_words(sentence):
# 匹配中文字符
pattern = hanzi.characters
# 分词并去除停用词
words = [word for word in jieba.cut(sentence) if word not in stop_words and re.match(pattern, word)]
return words
# 对文本进行分词
df['words'] = df['text'].apply(cut_words)
# 统计词频
word_counts = Counter([word for words in df['words'] for word in words])
# 打印出现频率最高的 20 个词语
for word, count in word_counts.most_common(20):
print(f"{word}: {count}")
```
在这个例子中,我们使用了 pandas 库来读取 CSV 文件,并使用 jieba 库进行中文分词。我们还定义了一个中文停用词列表,以去除常见的无意义词语。最后,我们使用 Counter 对所有词语进行计数,并打印出现频率最高的 20 个词语。请注意,这只是一个示例,你需要根据自己的需求进行修改和调整。
阅读全文