Python在自然语言处理中的应用:文本清理、分词等实例介绍
Python是一种强大且受欢迎的编程语言。它易于学习。它易于使用。它有直观的语法。它有大量开源文档。它有社区支持。它特别适合用于自然语言处理任务。

以下是几个Python自然语言处理的实例:
1.文本清理和预处理
对于多数自然语言处理应用程序而言 首先要对原始文本开展清理与预处理工作 Python里有诸多用于文本清理及预处理的库和技术 像nltk也就是自然语言工具包以及正则表达式 下面给出一个简单的文本清理示例 此示例会删除HTML标记和停用词
import re
从nltk语料库中导入停用词
停用词 = 设置(英文停用词列表中的词)
def clean_text(text):
text = re.sub('<[^>]*>', '', text)
text = re.sub(r'[^\w\s]', '', text) 可改写为:text = re.sub(r'[^\w\s]', '', text) 此句中,re.sub 是一个函数,用于在字符串中进行替换操作。r'[^\w\s]' 表示一个正则表达式模式,它匹配除字母、数字和空格以外的任何字符。text 是要进行替换操作的字符串。整个语句的作用是将 text 中所有匹配 r'[^\w\s]' 模式的字符替换为空字符串。
text = text.lower()
text等于对text按空格分割后的每个词进行操作,若该词不在停用词中则保留,最后将保留的词组成列表
return " ".join(text)
2.分词
分词是把句子划分成单词或标记的过程。Python里有几个分词库能供选择。比如nltk、spaCy和Stanford NLP等。下面是一个使用nltk的分词示例:
从nltk.tokenize中导入word_tokenize text = "This is a sentence." tokens = word_tokenize(text) print(tokens)
3.词性标注
词性标注是把单词分到其词性的过程。Python里的nltk库有内置词性标注器。能利用它标注句子中的单词。下面是一个用nltk的词性标注示例:
from nltk.tokenize import word_tokenize from nltk import pos_tag text = "This is a sentence." tokens = word_tokenize(text) tags = pos_tag(tokens) print(tags)
4.命名实体识别
命名实体识别是这样一个过程,即在文本里识别实体,像人名、组织、地名等。Python中的nltk库和spaCy库都有内置的命名实体识别器。下面是一个使用spaCy的命名实体识别示例:
import spacy nlp等于加载英文小模型en_core_web_sm 史蒂夫·乔布斯曾是苹果公司的首席执行官 doc = nlp(text) for ent in doc.ents: 打印实体标签
5.文本分类
文本分类指的是把文本划分成预定义类别的进程。Python里的scikit-learn以及nltk等库都能够用来进行文本分类。下面是一个运用scikit-learn的文本分类例子:
从sklearn.feature_extraction.text中导入CountVectorizer 从sklearn.naive_bayes中导入MultinomialNB ["这是一部好电影。", 这是一部糟糕的电影 剧情不错。但演技糟糕。 表演不错。但情节糟糕。 训练标签为 阳性 阴性 阴性 阳性 向量化器 = 计数向量化器() 对训练数据进行特征提取并转换为向量,将结果赋值给train_vectors ,此过程使用vectorizer进行拟合与转换操作 classifier = MultinomialNB() 分类器进行拟合。使用训练向量。以及训练标签。 测试数据等于["这部电影非常好。"] 测试向量等于向量化器对测试数据进行转换的结果 打印分类器对测试向量进行预测的结果
6.情感分析
情感分析是在文本里确定情感的过程。情感包括正面、负面或中性。Python中的nltk、TextBlob和VADER等库可用于情感分析。下面是一个用TextBlob进行情感分析的示例:
from textblob import TextBlob
我喜爱这个产品。它效果很棒!
blob = TextBlob(text)
情感等于情感分析结果的极性
if sentiment > 0:
print("positive")
elif sentiment < 0:
print("negative")
else:
print("neutral")
7.主题建模
主题建模是个从文本集合里识别主题的过程。Python里的gensim和lda等库能用于主题建模。下面是个用gensim进行主题建模的示例:
import gensim from gensim import corpora 文档 = ["这是一部好电影。"] 这是一部糟糕的电影 剧情不错。但演技糟糕。 表演不错。但情节糟糕。 创建语料库 将文档按行分割,转为小写,再按词分割,将每个文档的词列表存入texts列表中 将语料库中的文本传入函数,以此构建词典并赋值给变量dictionary 语料库等于这样一个列表,列表中的元素是通过对文本列表中的每个文本,运用字典文档词袋模型得到的结果 # build LDA model lda模型由gensim.models.ldamodel.LdaModel创建。语料库为corpus。词到id的映射为dictionary。主题数量是2。迭代次数为10。 # print topics topics等于lda模型打印主题,单词数量设为4 for topic in topics: print(topic)
以上是Python自然语言处理的一些示例。当然 还有许多其他应用程序和技术能供使用 这些示例只是为帮您了解Python中自然语言处理的一些基础