【问题标题】:issue with using TextBlob translate function for Pandas Dataframe对 Pandas Dataframe 使用 TextBlob 翻译功能的问题
【发布时间】:2021-04-19 02:39:23
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: python-3.x pandas dataframe textblob


    【解决方案1】:

    有趣的问题

    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
    

    我的也一样 - 但我不确定你的数据

    【讨论】:

    • 您好,感谢您的回答!我还有一个问题。如果某些英语在 cmets 中与其他语言混合使用,我注意到它也会报错(未翻译:翻译 API 未更改输入字符串返回)。我尝试使用 try&except 但 Python 不会做任何事情。你知道我该如何解决这个问题吗?
    • 你知道你来自什么语言吗?这对翻译很有帮助。
    • 我检查了它,大部分是西班牙语,但似乎其他一些语言也是如此(客户评论)。无法检查每一行,因为它们太多了。
    • 感谢您的更新。我在我的数据的子样本上运行它,它工作正常。它只留下英语。但是我收到了大约 27000 条评论并遇到了一个错误 -> HTTPError: Too Many Requests 。这似乎不是您的代码错误,而是 Python 在使用 Google Translation API 时可以处理的数据量受到某种限制或限制?
    • 你隐含地调用谷歌翻译,他们可能有限制。我不知道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2016-06-07
    • 2016-05-27
    • 2014-04-28
    相关资源
    最近更新 更多