Python 中的语言检测
尽管我们作为人类知道几种语言,但当我们处理混合语言的数据集时,这还不够,因为我们必须识别文本或文档中使用的语言才能继续该过程。 因此,在这种情况下,适应语言检测方法会有所帮助。
为了检测语言,Python 有不同的语言检测库。 我们可以选择最适合我们的,因为用于语言检测的 Python 库可以识别表达式中的字符和内容中的常用词。
我们可以使用自然语言处理或机器学习来构建模型来检测语言和 Python 库。 例如,当 Chrome 检测到网页内容不是英文时,它会弹出一个带有翻译按钮的框。
这种情况背后的想法是 Chrome 正在使用一个模型来预测网页上使用的文本语言。
在 Python 中使用库和 API 进行语言检测
我们在 Python 中使用的第一种检测语言的方法是库或 API。 让我们看看我们可以在 Python 中用于语言检测的最常用的库。
langdetect
langdetect 也是谷歌的语言检测库,需要像以前的模块一样安装,因为它没有随标准实用程序模块一起提供。
此 API 在文本处理和语言学方面很有用,支持 55 种语言。
Python 版本应为 2.7 或 3.4+ 才能使用此 API。 我们可以安装 langdetect API,如下所示。
$ pip install langdetect
导入 detect 模块后,我们可以使用 langdetect API 来检测语言。 之后,代码打印给定句子的检测到的语言。
这里我们提供了三个句子作为例子,它分别显示他们的语言为英语(en)、意大利语(pt)和中文(ko)。
代码:
from langdetect import detect
print(detect('Hello World!'))
print(detect('Ciao mondoe!'))
print(detect('你好世界!'))
输出:
langid
langid 是另一个用于检测具有最小依赖性的语言名称的 API。 它也是一个独立的语言识别工具,可以检测 97 种语言。
要安装,我们必须在终端中键入以下命令。
$ pip install langid
使用下面的方法,我们可以使用 langid 库检测语言。 与在 TextBlob 中一样,在循环时,它会看到三个句子的语言,并打印出每个句子的受尊重语言,如英语 (it)、意大利语 (gl) 和中文 (zh)。
代码:
import langid
T = ['Hello World!', 'Ciao mondoe!', '你好世界!' ]
for i in T:
print(langid.classify(i))
输出:
textblob
extblob 是另一个使用谷歌翻译的语言检测器来处理文本数据的 API。 它在 NLTK(自然语言工具包)和模式模块(被认为是 Python 中的巨人)的帮助下运行良好。
这个简单的 API 执行情感分析、名词短语提取、词性标记、分类等,而不是检测语言。
要使用此 API,Python 版本应高于或等于 2.7 或 3.5,并且需要互联网连接。
我们必须使用 pip 命令安装包。
$ pip install textblob
之后,我们可以通过导入模块 TextBlob 来检测语言。 在这里,我们将三个不同语言的句子分配给名为“T”的数组。
在循环 for 循环时,它会检测三个句子的措辞并将它们打印出来。
代码:
from textblob import TextBlob
T = ['Hello World!', 'Bonjour le monde!', '你好世界!' ]
for i in T:
lang = TextBlob(i)
print(lang.detect_language())
由于 textblob 库已被弃用,上面的代码显示错误而不是准确的输出。 所以,不推荐使用这种方法; 取而代之的是,我们可以使用 Google Translate API。
除了上述 API 和库,我们还有 googletrans、FastText、Spacy、polyglot、pycld、chardet、guess language 等等。 根据用例,我们也可以使用它们。
其中,polyglot 和 FastText 是高精度长文本的最佳库。 此外,polyglot 和 pycld 可以检测文本中的多种语言。
googletrans 是一个免费的 Python 库,它允许我们发出无限制的请求。 它可以自动检测语言并且快速可靠。
FastText 是一个文本分类器,可以识别 176 种语言并提供更快、更准确的输出。 Facebook 使用的语言检测库是 FastText。
除了使用库或 API 之外,我们还可以使用语言模型或相交集来检测语言。
在 Python 中使用语言模型进行语言检测
在这里,模型给出了一个单词序列的概率,我们可以为每种得分最高的语言使用 N 个语言模型。
这些语言模型使我们能够检测文本的语言,即使它包含多种语言。
在 Python 中使用相交集进行语言检测
下面我们可以检测语言的方法是使用相交集。 在这里,我们准备了 N 个集合,其中包含每种语言中最常见的单词,并将文本与每个集合相交。
那么检测到的语言就是有更多交集的集合。
总结
总体而言,Python 检测语言的系统方法使用库和 API。 但它们在准确性、语言覆盖范围、速度和内存消耗方面有所不同。
我们可以根据用例选择合适的库并构建模型。
当模型只依赖于一种语言时,其他语言可以被认为是噪音。 语言检测是数据清洗的一个步骤; 因此,我们可以通过检测语言来获得无噪声数据。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串