【问题标题】:Is there any way to detect and differentiate between English language and Roman-Urdu language in python?有没有办法在python中检测和区分英语和罗马乌尔都语?
【发布时间】:2019-11-01 07:18:30
【问题描述】:

基本上我有一个 RomanUrduDataSet(乌尔都语是在英语字母的帮助下编写的,例如 Sahi-right),其中还包括一些英语单词。而且我必须检测包含多少英语单词以及它们是什么。换句话说,想要区分两种语言,即英语和罗马乌尔都语都使用相同的字母集。例如“总理瓦泽尔-阿扎姆”

我在 colab 中使用 python 尝试了 spacy 和 spacy_langdetect 包,它适用于所有其他语言,但不幸的是包括罗马乌尔都语单词作为英语单词。例如文本 “This is English text sai kaha”,其中“sai kaha”(说得好)属于罗马乌尔都语,但我下面的代码将其包含为英语单词。

import spacy
from spacy_langdetect import LanguageDetector

nlp = spacy.load("en")
nlp.add_pipe(LanguageDetector(), name="language_detector", last=True)
text = "This is English text Er lebt mit seinen Eltern und seiner Schwester in Berlin. Yo me divierto todos los días en el parque. Je m'appelle Angélica Summer, j'ai 12 ans et je suis canadienne."
doc = nlp(text)
# document level language detection. Think of it like average language of document!
print(doc._.language['language'])
# sentence level language detection
for i, sent in enumerate(doc.sents):
    print(sent, sent._.language)

输出:
这是英文文本 sai kaha {'language': 'en', 'score': 0.9999982400559537} Er lebt mit seinen Eltern und seiner Schwester 在柏林。 {'语言':'de','分数':0.9999979601967207} Yo me divierto todos los días en el parque。 {'语言':'es','分数':0.9999976130316337} Je m'appelle Angélica Summer, j'ai 12 ans et je suis canadienne。 {'language': 'fr', 'score': 0.9999962796815557}

但我想要的结果是:

这个英文文本 {'language': 'en', 'score':
sai kaha {'language': 'roman-urdu', 'score':

【问题讨论】:

    标签: python nlp google-colaboratory language-detection


    【解决方案1】:

    您的 cmets 已经说过了 - 这是句子级别的语言。如果您希望 sai kaha 使用不同的语言,则需要为 its own sentence。所以要么依赖解析器模型需要不同,用于句子边界检测,要么你可以尝试用Sentencizer实现自己的。

    【讨论】:

    • 此外,在罗马乌尔都语中,had 表示限制,而在英语中,had 用作助动词,表示过去。
    【解决方案2】:

    您可以让 SpaCy 使用自定义 Sentencizer 通过 n-gram 识别语言(在这种情况下使用三元组)

    【讨论】:

    • 感谢您的友好回复。 N-grams 或 trigrams 只有在我们有两个连续的不同语言的句子时才起作用。实际问题是字级检测,例如Tum kitny funny ho 唯一有趣的是英语单词 rest 属于 roman-URDU。你认为 word2vec 能更好地帮助检测和区分两个混合语言单词吗?(我的部分想法)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多