python中的文本语言检测

2024-09-28 22:24:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试检测文本中可能包含未知数量语言的语言。下面的代码提供了不同的语言作为答案 注意:我减少了评论,因为不允许在“发布”期间出现错误

print(detect(كانت جميله وممتعة للأطفال اولا حيث اماكن اللعبر))
print(detect(的马来西亚))
print(detect(Vi havde 2 perfekte dage i Legoland Malaysia))
print(detect(Wij hebben alleen gekozen voor het waterpark maar daar ben je vrijs snel doorheen. Super leuke glijbanen en overal ruimte om te zitten en te liggen. Misschien volgende keer een gecombineerd ticket kopen met ook toegang tot waterpark))
print(detect(This is a park thats just ok, nothing great to write home about.  There is barely any shade, the weather is always really hot so they need to take this into consideration. The atractions are just meh. I would only go if you are a fan of lego, for the sculptures are nice.))

这里是输出

ar
zh-cn
da
nl
en

但是使用下面的循环,所有的评论都会给出“en”作为结果

from langdetect import detect
import pandas as pd
df = pd.read_excel('data.xls') #
lang = []    
for r in df.Review:
    lang = detect(r)
    df['Languagereveiw'] = lang

所有五行的输出都是'en'。

需要知道丢失的链条在哪里的指导?

这是样品data

其次,我怎样才能得到语言的全称,即英语中的“en”


Tags: theto语言dflangforis评论
1条回答
网友
1楼 · 发布于 2024-09-28 22:24:58

在循环中,执行以下操作将覆盖整个列:

df['Languagereveiw'] = lang

如果要在for循环中执行此操作,请使用iteritems

for index, row in df['Review'].iteritems():
    lang = detect(row) #detecting each row
    df.loc[index, 'Languagereveiw'] = lang

但是,你可以放弃这个循环

df['Languagereveiw'] = df['Review'].apply(detect)

这是在整个列上执行func的语法糖

关于从语言代码转换为完整描述的后一个问题:

“en”到“english”

polyglot

这提供了检测语言、获取语言代码和完整描述的工具

相关问题 更多 >