В основном у меня есть RomanUrduDataSet (урду, написанный с помощью английских алфавитов, например, Sahi-right), который также включает в себя некоторые английские слова. И я должен определить, сколько слов английского языка включены и каковы они. Другими словами, хочет провести различие между двумя языками, то есть английский и роман-урду используют оба набора алфавитов. Например, «Премьер-министр Wazeer-azam»
Я пробовал пакеты spacy и spacy_langdetect в colab, используя python, он работает хорошо для всех других языков, но, к сожалению, включая слова римского урду в качестве слов английского языка. Например, для текста «Это текст на английском языке 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 в Берлине. {'language': 'de', 'score': 0.9999979601967207} Yo me divierto todos los días en el parque. {'language': 'es', 'score': 0.9999976130316337} Je m'appelle Angélica Summer, j'ai 12 ans et je suis canadienne. {'language': 'fr', 'score': 0.9999962796815557}
но мой желаемый результат:
Этот текст на английском языке {'язык ':' en ',' оценка ':
sai kaha {' язык ':' роман-урду ',' оценка ':