迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中的语言检测

作者:迹忆客 最近更新:2023/06/20 浏览次数:

尽管我们作为人类知道几种语言,但当我们处理混合语言的数据集时,这还不够,因为我们必须识别文本或文档中使用的语言才能继续该过程。 因此,在这种情况下,适应语言检测方法会有所帮助。

为了检测语言,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('你好世界!'))

输出:

langdetect

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))

输出:

langid

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。 但它们在准确性、语言覆盖范围、速度和内存消耗方面有所不同。

我们可以根据用例选择合适的库并构建模型。

当模型只依赖于一种语言时,其他语言可以被认为是噪音。 语言检测是数据清洗的一个步骤; 因此,我们可以通过检测语言来获得无噪声数据。

上一篇:在 Python 中创建 SFTP 功能

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中创建 SFTP 功能

发布时间:2023/06/20 浏览次数:98 分类:Python

本文向您展示如何在 Python 中使用 SFTP 来移动数据和文件。使用 pysftp 在 Python 中创建 SFTP 功能

Python 中的 sscanf() 功能

发布时间:2023/06/20 浏览次数:180 分类:Python

这篇 Python 文章将使您更好地理解 sscanf() 必须提供什么以及我们如何在 Python 脚本中模仿它。Python 中的 sscanf() 功能

Python 本地服务器

发布时间:2023/06/20 浏览次数:150 分类:Python

本篇文章将向我们展示如何在 Python 中创建 HTTP 服务器。 在学习完本篇文章后,我们只需几行代码就可以轻松搭建一个 HTTP 服务器。

Python 中的一行 FTP 服务器

发布时间:2023/06/20 浏览次数:135 分类:Python

FTP 是文件传输协议的缩写。 它允许您通过计算机网络在客户端和服务器之间传输文件。使用 pyftpdlib 在 Python 中创建一行 FTP 服务器

在 Python 中检查 Argparse 的参数

发布时间:2023/06/20 浏览次数:125 分类:Python

本篇文章将讨论 argparse 的使用,我们将使用条件语句和 Python 中的参数名称检查 argparse 中是否存在参数。在 Python 中检查 argparse 的参数

Python 循环缓冲区

发布时间:2023/06/20 浏览次数:51 分类:Python

循环缓冲区是环形缓冲区的另一个名称。 Python 中的高效循环缓冲区。高效的循环缓冲区是一种允许高效插入和删除数据的数据结构。

Cron 类似 Python 中的调度程序

发布时间:2023/06/20 浏览次数:120 分类:Python

本篇文章将介绍调度类似于 Linux 中的 cron 作业的任务。 首先,我们将查看调度模块以在进程内调度中调度我们的作业。

通过 Crontab 执行 Python 脚本

发布时间:2023/06/20 浏览次数:57 分类:Python

在本文中,我们将探讨 Crontab 以及如何使用它来运行 Python 脚本。Linux/Unix/Solaris 中的 Crontab

克隆 Git 存储库的 Python 方法

发布时间:2023/06/20 浏览次数:196 分类:Python

让我们看看我们可以在 Python 环境中克隆 Git 存储库的不同方法。使用 PyCharm 克隆 Git 存储库

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便