Python中常用的中文文本预处理方法有哪些
发布时间:2024-01-08 07:33:28
Python中常用的中文文本预处理方法包括以下几种:中文分词、停用词过滤、词性标注、去除标点符号、去除特殊字符、去除HTML标签、去除URL链接、去除数字、去除空白字符、繁体转简体等。下面我们来逐一介绍这些方法,并附上使用例子。
1. 中文分词:将中文文本按照词语进行切分。
import jieba
text = "我喜欢用Python做自然语言处理。"
seg_list = jieba.cut(text, cut_all=False)
print(" ".join(seg_list))
输出结果为:"我 喜欢 用 Python 做 自然语言 处理 。"。
2. 停用词过滤:去除常见但无实际含义的词语,如“的”、“是”、“啊”等。
stopwords = ["的", "是", "啊"] # 自定义停用词列表
text = "我喜欢用Python做自然语言处理。"
seg_list = jieba.cut(text, cut_all=False)
filtered_words = [word for word in seg_list if word not in stopwords]
print(" ".join(filtered_words))
输出结果为:"我 喜欢 用 Python 做 自然语言 处理 。"。
3. 词性标注:为中文文本中的每个词语标注其词性,如“名词”、“动词”、“形容词”等。
import jieba.posseg as pseg
text = "我喜欢用Python做自然语言处理。"
words = pseg.cut(text)
for word, flag in words:
print(word, flag)
输出结果为:
我 r 喜欢 v 用 p Python eng 做 v 自然语言 n 处理 v 。 x
4. 去除标点符号:去除中文文本中的标点符号。
import re
text = "我喜欢用Python做自然语言处理。"
clean_text = re.sub("[\s+\.\!\/_,$%^*(+\“”\[\]+:“!,。?、~@#¥%……&*()]+|[+——-《》【】“”~@#¥%……&*()]+", "", text)
print(clean_text)
输出结果为:"我喜欢用Python做自然语言处理"。
5. 去除特殊字符:去除中文文本中的特殊字符。
text = "我喜欢@用Python做自然语言处理。"
clean_text = re.sub("[^\u4e00-\u9fa5^a-z^A-Z^0-9]", "", text)
print(clean_text)
输出结果为:"我喜欢用Python做自然语言处理"。
6. 去除HTML标签:去除中文文本中的HTML标签。
from bs4 import BeautifulSoup html = "<a href='https://www.example.com'>点击这里</a>" text = BeautifulSoup(html, "html.parser").get_text() print(text)
输出结果为:"点击这里"。
7. 去除URL链接:去除中文文本中的URL链接。
text = "请访问我的博客:https://www.example.com" clean_text = re.sub(r"http\S+|www.\S+", "", text) print(clean_text)
输出结果为:"请访问我的博客:"。
8. 去除数字:去除中文文本中的数字。
text = "今年是2022年,价格是$99.99。" clean_text = re.sub(r"\d+", "", text) print(clean_text)
输出结果为:"今年是年,价格是$。"。
9. 去除空白字符:去除中文文本中的空白字符。
text = " 我喜欢用Python做自然语言处理。 " clean_text = text.strip() print(clean_text)
输出结果为:"我喜欢用Python做自然语言处理。"。
10. 繁体转简体:将中文文本中的繁体字转换为简体字。
import opencc
text = "人生若只如初见,何事秋风悲画扇。"
cc = opencc.OpenCC("t2s") # 繁体字转简体字的转换器
simplified_text = cc.convert(text)
print(simplified_text)
输出结果为:"人生若只如初见,何事秋风悲画扇。"。
这些是Python中常用的中文文本预处理方法,通过这些方法可以更好地处理和分析中文文本数据。
