为 Pandas Dataframe 使用 TextBlob 翻译函数的问题
issue with using TextBlob translate function for Pandas Dataframe
我正在尝试使用 TextBlob 翻译功能将非英语语言转换为英语。
我的数据集基于 Pandas 数据框。
我知道它在非 Pandas 数据框上下文中有效。
例如,
what=TextBlob("El apartamento de Evan esta muy bien situado, con fcil acceso al cualquier punto de Manhattan gracias al metro.")
whatt=what.translate(to= 'en')
print (whatt)
但基于 Pandas 数据框,TextBlob 翻译无法正常工作。
我搜索了解决此问题的方法并找到了代码,但给了我一条不同的错误消息。谁能帮我解决这个问题?
data["comments"] = data["comments"].str.encode('ISO 8859-1', 'ignore').apply(lambda x: TextBlob(x.strip()).translate(to='en'))
TypeError: cannot use a string pattern on a bytes-like object
有趣的问题
import pandas as pd
data = { 'number' : [1,2], 'comments' : ['El apartamento de Evan','Manhattan gracias al metro' ] }
df = pd.DataFrame(data)
然后让我们将其翻译成新的字符串
df["commentst"] = df["comments"].apply(lambda x: str(TextBlob(x).translate(to='en')))
这给出了
number comments commentst
0 1 El apartamento de Evan Evan's Apartment
1 2 Manhattan gracias al metro Manhattan thanks to the subway
这是一个最小的试用版
def get_english(message):
analysis = TextBlob(message)
language = analysis.detect_language()
if language == 'en':
return message
return str(analysis.translate(to='en'))
df["commentst"] = df["comments"].apply(lambda x: get_english(x))
df
它和我的一样 - 但我不确定你的数据
我正在尝试使用 TextBlob 翻译功能将非英语语言转换为英语。 我的数据集基于 Pandas 数据框。
我知道它在非 Pandas 数据框上下文中有效。 例如,
what=TextBlob("El apartamento de Evan esta muy bien situado, con fcil acceso al cualquier punto de Manhattan gracias al metro.")
whatt=what.translate(to= 'en')
print (whatt)
但基于 Pandas 数据框,TextBlob 翻译无法正常工作。
我搜索了解决此问题的方法并找到了代码,但给了我一条不同的错误消息。谁能帮我解决这个问题?
data["comments"] = data["comments"].str.encode('ISO 8859-1', 'ignore').apply(lambda x: TextBlob(x.strip()).translate(to='en'))
TypeError: cannot use a string pattern on a bytes-like object
有趣的问题
import pandas as pd
data = { 'number' : [1,2], 'comments' : ['El apartamento de Evan','Manhattan gracias al metro' ] }
df = pd.DataFrame(data)
然后让我们将其翻译成新的字符串
df["commentst"] = df["comments"].apply(lambda x: str(TextBlob(x).translate(to='en')))
这给出了
number comments commentst
0 1 El apartamento de Evan Evan's Apartment
1 2 Manhattan gracias al metro Manhattan thanks to the subway
这是一个最小的试用版
def get_english(message):
analysis = TextBlob(message)
language = analysis.detect_language()
if language == 'en':
return message
return str(analysis.translate(to='en'))
df["commentst"] = df["comments"].apply(lambda x: get_english(x))
df
它和我的一样 - 但我不确定你的数据