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。 但它们在准确性、语言覆盖范围、速度和内存消耗方面有所不同。
我们可以根据用例选择合适的库并构建模型。
当模型只依赖于一种语言时,其他语言可以被认为是噪音。 语言检测是数据清洗的一个步骤; 因此,我们可以通过检测语言来获得无噪声数据。
相关文章
在 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 存储库