嘿,我有一个带有多语言文本的 csv。我想要的只是一个附加了检测到的语言的列。所以我编码如下,
from langdetect import detect
import csv
with open('C:\\Users\\dell\\Downloads\\stdlang.csv') as csvinput:
with open('C:\\Users\\dell\\Downloads\\stdlang.csv') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput)
all = []
row = next(reader)
row.append('Lang')
all.append(row)
for row in reader:
row.append(detect(row[0]))
all.append(row)
writer.writerows(all)
Run Code Online (Sandbox Code Playgroud)
但我收到的错误是 LangDetectException: No features in text
回溯如下
runfile('C:/Users/dell/.spyder2-py3/temp.py', wdir='C:/Users/dell/.spyder2-py3')
Traceback (most recent call last):
File "<ipython-input-25-5f98f4f8be50>", line 1, in <module>
runfile('C:/Users/dell/.spyder2-py3/temp.py', wdir='C:/Users/dell/.spyder2-py3')
File "C:\Users\dell\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile
execfile(filename, namespace)
File "C:\Users\dell\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/dell/.spyder2-py3/temp.py", …Run Code Online (Sandbox Code Playgroud) 在我的Rails 3应用程序中,用户可以在论坛中编写消息.我想确定给定消息的语言是什么.我对英语,俄语和希伯来语感兴趣.Ruby/Rails中是否有任何用于此类任务的内置库?如果没有,任何想法将不胜感激.
每次我运行在 Kaggle 上找到的以下代码时,我都会得到ValueError. 这是因为SpaCy新版本 v3 的缘故:
import scispacy
import spacy
import en_core_sci_lg
from spacy_langdetect import LanguageDetector
nlp = en_core_sci_lg.load(disable=["tagger", "ner"])
nlp.max_length = 2000000
nlp.add_pipe(LanguageDetector(), name='language_detector', last=True)
Run Code Online (Sandbox Code Playgroud)
ValueError: [E966]nlp.add_pipe现在采用已注册组件工厂的字符串名称,而不是可调用组件。预期为字符串,但在 0x00000216BB4C8D30> 处获得 <spacy_langdetect.spacy_langdetect.LanguageDetector 对象(名称:“language_detector”)。
如果您使用以下命令创建组件nlp.create_pipe('name'):删除 nlp.create_pipe 并nlp.add_pipe('name')改为调用。
如果您传入类似TextCategorizer(): 的组件,请使用字符串名称进行调用nlp.add_pipe,例如nlp.add_pipe('textcat').
如果您使用自定义组件:将装饰器@Language.component(对于函数组件)或@Language.factory(对于类组件/工厂)添加到自定义组件并为其指定一个名称,例如@Language.component('your_name')。然后您可以运行nlp.add_pipe('your_name')将其添加到管道中。
我已经安装了这些版本:
python_version : 3.8.5
spacy.version : '3.0.3'
scispacy.version : '0.4.0'
en_core_sci_lg.version : '0.4.0'
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种简单的方法来检测短文摘要,几句话是英语与否.在我看来,这个问题比试图检测任意语言容易得多.有没有可以做到这一点的软件?我正在用python编写,并且更喜欢python库,但其他东西也可以.我试过谷歌,但后来意识到TOS不允许自动查询.
我在PostgreSQL中有一个表,其中列是文本.我需要一个库或工具,可以识别每个文本的语言以用于测试目的.
不需要PostgreSQL代码,因为我在安装语言时遇到问题,但是任何可以连接到数据库,检索文本并识别它的语言都是受欢迎的.
我Lingua::Identify在Perl脚本中的答案中使用了建议,它有效,但结果不准确.
我想要识别的文本来自网络,大多数都是葡萄牙语,但是Lingua::Identify将法语,意大利语和西班牙语分类为类似的语言.
我需要更精确的东西.
我添加了java和r标签,因为我在系统中使用的语言和使用它们的解决方案将很容易实现,但欢迎使用任何语言的解决方案.
我需要在我的Angular2应用程序中检测浏览器语言.基于这种语言,我需要发送请求(到后端的REST API),我的变量的本地化和ID,我需要翻译.之后我收到了翻译变量的回复.
因此,应用程序工作流程是检测浏览器语言,例如,确定en-US后,我将向后端发送请求,为en-US提供ID为1,2,3,4,5的变量.回应是{{id:1, var:pay}, {id:1, var:title}}等等
那么如何使用Angular2(使用typescript开发)浏览器语言进行检测?
我必须使用请求详细信息(IP地址,浏览器信息等)在Java Servlet中自动检测用户所在国家/地区和语言.是否可以为大多数用户检测这些设置(~90%)?
可以取悦任何设法做到这一点的人解释如何做到这一点:-)
我是否需要获取我需要添加的语言的n-gram文件?
这是创建tika.language.override.properties,添加一些其他lang代码并在classPath上添加lang-code.ngp n-gram文件的问题?在那种情况下,我在哪里得到它以及为什么Tika不支持更多语言,如果只是这个问题?
目前支持语言检测的这些语言
da,de,et,el,en,es,fi,fr,hu,is,it,lt,nl,no,pl,pt,ru,sv,th
Run Code Online (Sandbox Code Playgroud)
和tika使用传统的n-gram表示法
er_ 132232
_de 103517
en_ 82666
et_ 80661
for 65286
_fo 57945
de_ 51382
der 44049
at_ 41915
det 41381
_og 40344
_at 39482
ing 38707
den 36795
og_ 36577
_me 34924
nde 34528
Run Code Online (Sandbox Code Playgroud)
这个lang检测应用程序目前支持这些语言,但有一些不同的n-gram文件
af bg cs de en fa fr he hr id ja ko ml ne no pl ro sk sq sw te tl uk vi zh-tw ar bn da el es fi gu hi hu …Run Code Online (Sandbox Code Playgroud) 我langdetect用来确定一组字符串的语言,我知道这些字符串是英语或法语.
有时,langdetect告诉我语言是罗马尼亚语,因为我知道这是一个法语字符串.
我怎样才能langdetect选择英语或法语,而不是所有其他语言?
谢谢!
我试图用所谓的Java库langdetect托管在这里.它使用起来既不容易:
Detector detector;
String langDetected = "";
try {
String path = "C:/Users/myUser/Desktop/jars/langdetect/profiles";
DetectorFactory.loadProfile(path);
detector = DetectorFactory.create();
detector.append(text);
langDetected = detector.detect();
}
catch (LangDetectException e) {
throw e;
}
return langDetected;
Run Code Online (Sandbox Code Playgroud)
除了相对于所述DetectFactory.loadProfile方法.当我传递一个绝对文件路径时,这个库工作得很好,但最终我认为我需要将我的代码和langdetect配套profiles目录打包在同一个JAR文件中:
myapp.jar/
META-INF/
langdetect/
profiles/
af
bn
en
...etc.
com/
me/
myorg/
LangDetectAdaptor --> is what actually uses the code above
Run Code Online (Sandbox Code Playgroud)
我将确保LangDetectAdaptor位于其中的内容myapp.jar提供了在运行时工作所需的依赖项langdetect.jar和jsonic.jar依赖项langdetect.但是我很困惑我需要传递给我的DetectFactory.loadProfile工作:
langdetectJAR附带了profiles …python ×4
java ×3
nlp ×2
angular ×1
apache-tika ×1
classpath ×1
jar ×1
jsp ×1
localization ×1
postgresql ×1
r ×1
ruby ×1
servlets ×1
spacy ×1
translate ×1
typescript ×1