通过langdetect.detect

时间:2018-12-04 17:15:54

标签: python scikit-learn nlp nltk

我同时使用Nltk和Scikit。学习做一些文本处理。我有一个包含句子的数据集,其中一些句子解释了法语和英语的情况(法语部分重复),我想删除法语部分。以下是我的一句话:

“全球快车道”始发地日本东京都将在滑雪胜地加尔各答的影响导致无产阶级问题汽车服务业持续增长需求持续旺盛无人驾驶飞机的最长时间飞行环球经济快报(Japan Express)从日本东京到多瓦尔(Dorval)的机组人员因襟翼问题不得不在Rwy停靠。已明确决定降落在Rwy不需要紧急服务飞机降落了无事故大约有记录s的mdy区域运行报告延迟时间

我想删除所有法语单词。到目前为止,我已经尝试了以下代码,但是结果不够好。

x=sentence
x=x.split()
import langdetect      
from langdetect import detect 
for word in x:
lang=langdetect.detect(word)
if lang=='fr':
    print(word)
    x.remove(word)

以下是我的输出:

l
un
sur
une
oiseaux
avoir
un
le
du
un
est

这是一个好方法吗?如何改善其性能以达到更好的效果。

1 个答案:

答案 0 :(得分:1)

语言检测通常至少需要较长的句子才能做得体。一两个简短的单词可能还不够。考虑上面a中的Dorval a d effectuera本身是法语还是英语? Tokyo是法语吗​​?

我还要仔细检查该库是否可以处理您数据中存在的那种非标准法语(无重音,无撇号,字母丢失等)。更长的字符串。图书馆可能只擅长弄清楚更多标准的法语是法语。例如,d'un problème与您的数据:d un probl me

对于其他可以限制可能的语言集的方法,另请参见此问题:Python langdetect: choose between one language or the other only