自然语言处理与Texthero库介绍

自然语言处理NLP),通常缩写为NLP,是人工智能的一个分支,它处理计算机与人通过自然语言的交互。NLP的核心目标是以有意义的方式阅读、解析、理解和推断人类语言。大多数NLP策略依赖于人工智能从人类语言中提取意义。

NLP涉及应用计算技术来识别和分离特征语言元素,将非结构化的语言信息转换成计算机能够理解的结构化形式。当内容被赋予后,计算机将使用算法提取每个句子相关的意义,并从中收集基本信息。有时,计算机可能无法很好地理解句子的意义,导致不理想的结果。例如,在20世纪50年代,英语和俄语之间某些词汇的翻译中发生了一个有趣的插曲。

为什么NLP是困难的?自然语言处理被认为是软件工程中的一个难题。正是人类语言的本质使得NLP变得困难。指导使用自然语言传递信息的规则对计算机来说很难理解。

这些规则中的一部分可能是高度抽象和理论的;例如,当某人使用讽刺来传递信息时。另一方面,这些规则中的一部分可能是低层次的;例如,使用字符“s”来表示大多数事物。全面理解人类语言需要理解单词以及如何将这些概念联系起来以传达预期的信息。虽然人类可以轻松掌握一种语言,但自然语言的模糊性和歧义性是使NLP对机器来说难以执行的原因。

什么是Texthero库?

Texthero是一个Python库或工具包,用于快速且轻松地处理基于文本的数据集。它非常容易学习,并且旨在在Pandas之上使用。它具有与Pandas相似的表达力和力量,并且被广泛报道。它是现代的,为那些几乎没有或根本没有词源学知识的多十年软件工程师设计的。

可以将Texthero库视为一个工具,帮助理解和处理基于文本的数据集。给定一个简单的数据集,很容易掌握主要概念。然而,给定一个文本数据集,很难快速洞察底层数据。有了Texthero,预处理文本数据、将其映射到向量空间以及可视化获得的向量空间只需要几行代码。

它是免费的、开源的,并且文档齐全(即使是初学者也能轻松学习——最好的事情)。Texthero包括以下工具:

  • 数据(文本)可视化:用于向量空间可视化和地图上的位置定位。
  • 文本表示:用于将文本数据表示为向量。例如,它提供了词频、逆文档频率-词频(TF-IDF)和自定义词嵌入。
  • 自然语言处理:用于关键词和关键短语提取以及命名实体识别。
  • 向量空间分析:用于分析向量空间。它提供了K-means、DBSCAN、层次聚类和均值漂移等聚类算法。
  • 预处理文本数据:它提供了即开即用的解决方案,但同时也适用于自定义解决方案。

使用以下代码通过pip安装。打开终端并执行:

pip install texthero

在幕后,Texthero使用各种NLP和AI工具包,如Gensim、NLTK、SpaCy和scikit-learn。不需要单独安装它们,pip会处理这些。

如果已经安装了它,那么使用以下命令升级到最新版本:

pip install texthero -U import texthero as hero

以BBC体育数据集为例进行进一步的教程。这个数据集包含来自BBC体育网站的737个文档。这个数据集有五个不同的领域,分别是足球、网球、橄榄球、板球和田径。原始数据集以五个不同文件夹的zip文件形式出现,每个点都包含文章的文本信息。

为了舒适,创建了这个脚本来读取所有内容信息并将其存储到Pandas DataFrame中。让开始编写一些代码。

import texthero as hero import pandas as pd # 加载数据集 df = pd.read_csv('sample.csv') df.head(2)

上述代码的输出如下:

text                          topic 0 "Claxton hunting first major medalnnBritish h..." athletics 1 "O'Sullivan could run in WorldsnnSonia O'Sull..." athletics

让通过编写一些代码来清理数据。要清理数据,只需编写一行代码即可。

df['clean_data'] = hero.clean(df['text_data'])

也可以使用管道函数实现相同的结果。检查以下代码:

df['clean_data'] = df['text_data'].pipe(hero.clean)

clean方法的一些默认管道如下:

  • Lowercase(string): 将所有文本转换为小写。
  • fillna(s): 用空格填充空值。
  • remove_digits(): 移除所有数字块。
  • remove_stopwords(): 移除所有停用词,如and、but、how等。

有关更多信息请点击这里:

还可以自定义管道以同时执行不同的清理任务。

from texthero import preprocessing as ppe custom_pipeline = [ ppe.fillna, ppe.lowercase, ppe.remove_whitescape ] df['clean_data'] = hero.clean(df['text_data'], custom_pipeline)

一旦数据被清理,下一步就是将文本转换为向量。它用于将文本数据表示为向量。例如,它提供了词频、逆文档频率-词频(TF-IDF)和自定义词嵌入。让开始吧。

TFIDF表示:

df['clean_text_tfidf'] = hero.tfidf(df['clean_text'])

主成分分析(PCA):

df['clean_text_pca'] = hero.pca(df['clean_text_tfidf'])

一步到位:

可以在一步中完成上述三个阶段,TF-IDF、清理和降维。这不是很了不起吗?

df['pca] = ( df['text'].pipe(hero.clean).pipe(hero.tfidf).pipe(hero.pca) )

有关更多信息请点击这里:

Texthero还提供了一些函数,以视觉形式表示转换后的数据。所有这些可视化都是使用Plotly Python开源库内部绘制的。它提供了散点图、词云等视觉图表。

有关更多信息请点击这里:

有关更多信息,请查看官方文档:

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485