Как найти ближайшее совпадение строк в большом наборе переменных в Python? - PullRequest
1 голос
/ 06 июня 2019

Мне нужно найти способ найти строку, наиболее похожую на ту, что вводил пользователь в списках переменных отдельных переменных.

L666485 = [u9027, m616, "CHELMSFORD, ", "Yes?"]
L666461 = [u9027, m616, "CHELMSFORD, ", "Thank you."]
L666460 = [u9029, m616, "CREALOCK, ", "The only reports of enemy activity have come from the direction of the Royal Kraal, at Ulundi."]
L666385 = [u9027, m616, "CHELMSFORD, ", "Our runners bare his dispatches, do they not?"]

например. Переменная name начинается с буквы L, за которой следует число, затем идет список, который содержит (слева направо) идентификатор персонажа, идентификатор фильма, имя персонажа, указанную строку. Мне нужно найти строку, указанную для каждого элемента списка переменных L [3]

Я создаю чат-бота, использующего python, который использует cornell movie-dialogs cornell для поиска и поиска строки, похожей на строку, указанную в сценариях, Затем код должен найти соответствующий разговор, а затем найти следующую строку. Я изучил difflib.get_close_matches, но, насколько я могу судить, он ищет только список в единственной переменной.

#List of variables
from movie_variables import *

def main():
    #user input 
    user_input = input(":// ")

    #This is something that I would like it to do
    #use difflib.get_close_matches to search movie variables for something similar to user_input
    matching_line = difflib.get_close_matches(user_input, movie_variables[3]) 

В идеале я хотел бы, чтобы он выводил идентификатор переменной для строки, которая похожа, например. L6551

1 Ответ

0 голосов
/ 06 июня 2019

Вы можете добавить имя переменной в начале списка и просто вернуть его как movie_variables[0].

...