1

我正在寻找可以告诉我文本语言的算法(例如,你好 - 英语,Bonjour - 法语,Servicio - 西班牙语)并且还能纠正英语单词的拼写错误。我已经探索过 Google 的 TextBlob,它非常相关,但是一旦我的代码开始执行,它就会出现“请求过多”错误。我也开始探索 Polyglot,但在 Windows 上下载库时遇到了很多问题。

TextBlob 的代码

*import pandas as pd
from tkinter import filedialog
from textblob import TextBlob
import time
from time import sleep
colnames = ['Word']
x=filedialog.askopenfilename(title='Select the word list')
print("Data to be checked: " + x)
df = pd.read_excel(x,sheet_name='Sheet1',header=0,names=colnames,na_values='?',dtype=str)
words = df['Word']
i=0
Language_detector=pd.DataFrame(columns=['Word','Language','corrected_word','translated_word'])
for word in words:

        b = TextBlob(word)
        language_word=b.detect_language()
        time.sleep(0.5)

        if language_word in ['en','EN']:
            corrected_word=b.correct()
            time.sleep(0.5)
            Language_detector.loc[i, ['corrected_word']]=corrected_word
        else:
             translated_word=b.translate(to='en')
             time.sleep(0.5)

        Language_detector.loc[i, ['Word']]=word
        Language_detector.loc[i, ['Language']]=language_word
        Language_detector.loc[i, ['translated_word']]=translated_word

        i=i+1

filename="Language detector test v 1.xlsx"
Language_detector.to_excel(filename,sheet_name='Sheet1')
print("Languages identified for the word list")**
4

3 回答 3

1

对语言进行分类的一种常用方法是收集有关字母或单词频率的汇总统计数据,并将它们与已知的语料库进行比较。一个朴素的贝叶斯分类器就足够了。有关在 Python 中执行此操作的方法,请参阅https://pypi.org/project/Reverend/

拼写错误的更正也可以使用最可能的单词与特定拼写错误的可能性的统计模型从语料库中完成。有关如何在 Python 中执行此操作的示例,请参阅https://norvig.com/spell-correct.html 。

于 2019-11-18T08:09:58.570 回答
0

您可以使用它,但它几乎不可靠:

https://github.com/hb20007/hands-on-nltk-tutorial/blob/master/8-1-The-langdetect-and-langid-Libraries.ipynb

或者,您可以给紧凑型语言检测器 (cld v3) 或 fasttext 一个机会,或者您可以使用语料库检查目标文本中出现的单词的频率,以确定目标文本是否属于相应语料库的语言。后者只有在您知道可供选择的语言集时才有可能。

于 2019-11-18T08:05:54.377 回答
0

对于错字更正,您可以使用 Levenshtein 算法,该算法计算“编辑距离”。您可以将您的单词与字典进行比较并选择最可能的单词。对于 Python,您可以使用:https ://pypi.org/project/python-Levenshtein/

在此处查看 Levenshtein 编辑距离的概念:https ://en.wikipedia.org/wiki/Levenshtein_distance

于 2019-11-18T08:21:37.073 回答