匹配不同语言中包含“and”和&符号的字符串

问题描述 投票:0回答:1

假设在2个不同的数据框中

df1
df2
我有2列

df1['film'] = pd.Series(['Beavis & Butthead', 'Bonnie e Clyde', 'Adam & Eve'])
df2['film'] = pd.Series(['Beavis und Butthead', 'Bonnie & Clyde', 'Adam et Eve'])

多种不同语言的电影标题。 (实际上,我的专栏比这大得多,并且不完全包含带有&符号的标题或不同语言的“the”一词的等价物。因此,我不能使用诸如停用词之类的东西来解决我的问题,因为它也会修改这些标题“破坏性”的一种方式。)

合并这两列上的数据框时,这些记录都不会产生匹配,如果我做了一个简单的

str.replace
,它们仍然不会全部匹配,因为无法从任何标题中知道&符号是否应该是'e'、'et'、'und'、'and' 等

由于我没有电影标题所用的所有语言的列表,我该如何解决这个问题?

python pandas string join nlp
1个回答
0
投票

您可以尝试使用法学硕士来获得正式的英文头衔吗?使用

dpq
包和
gpt-3.5-turbo
,编写如下提示即可获取官方英文标题。

# Define messages
messages = [
    {
        "role": "system",
        "content": "You only return the official english title of a movie. Pay special attention to the correct spelling."
    },
    {
        "role": "user",
        "content": "Very bad trip"
    },
    {
        "role": "assistant",
        "content": "The Hangover"
    },
]

# Add new function
dpq_agent.return_film_title = dpq_agent.generate_function(messages)

# Translate titles
df1['film_english'] = dpq_agent.return_film_title(df1['film'])
df2['film_english'] = dpq_agent.return_film_title(df2['film'])

然后,合并两个数据框。在您的示例中,这将返回:

              film1          film_english               film2
0  Beavis & Butthead  Beavis and Butt-Head  Beavis und Butthead
1     Bonnie e Clyde      Bonnie and Clyde       Bonnie & Clyde

免责声明:我是dpq的作者。

© www.soinside.com 2019 - 2024. All rights reserved.