Сравнение нескольких строк

1

Эй, я новичок. Мне нужна помощь в сравнении строк. My Assignment - сделать чатбот, тот, который читает из текстового файла, который имеет возможные вещи для ввода и каков будет результат.

Моя проблема в том, что он просит выбрать наиболее подходящий из текстового файла, просто yeh? но вы также должны сохранять переменные одновременно

Например, одна из строк правил:

you <w1> <w2> <w3> <w4> me | What makes you think I <w1> <w2> <w3> <w4> you?

Вы должны сохранить <w1> и т.д. Для переменной. И вход может быть таким, "знаете ли вы, что вы действительно хороши для меня", поэтому вам нужно также настроить код для этого.

А также мы не можем сделать код только для этого текстового файла, он должен настраиваться на все, что помещается в текстовый файл.

Кто-нибудь может мне помочь?

Это то, что я хочу:

import string
import sys
import difflib


#File path:
rules = open("rules.txt", "rU")

#Set some var's:
currentField = 0
fieldEnd = 0
questions = []
responses = []
Input = ""
run = True

#Check if we are not at the end of the file:
for line in rules:
    linem = line.split(" | ")
    question = linem[0]
    response = linem[1]

    questions.append(question.replace("\n", ""))
    responses.append(response.replace("\n", ""))

print questions
print responses

for q in questions:
    qwords.appendq.split()

while run = True:
    Input = raw_input('> ').capitalize()

    for char in Input:
        for quest in questions:
            if char in quest:
                n += 1
            else:
                if "<" in i:
                    n += 1
            closestQuestion = questions.index(q)


    print response
  • 0
    Обновлено с моим кодом
Теги:
string

2 ответа

2

Я бы предпочел бы пирамировать любой подход, основанный на регулярном выражении, для решения этой задачи. Легче создавать читаемый парсер даже для более сложных и сложных грамматик.

0

Как быстрое и глупое решение, проанализируйте входной файл и сохраните записи в списке. Каждая запись должна содержать динамически скомпилированное "соответствующее регулярное выражение" (например, r'you (\w+) (\w+) (\w+) (\w+) me(?i)') и "замена string "(например, r'What makes you think я \1 \2 \3 \4 you?'). Для каждого входящего запроса бот-чат должен соответствовать текстовому списку regex снова, найти соответствующую запись и затем вызвать regex.sub() для "замены строки".

Но прежде всего, прочитайте начальный учебник по Python. Ваш код не является пифоническим и просто неправильным во многих отношениях.

  • 0
    Большое спасибо, я знаком с довольно большим количеством вещей, связанных с Python, но не так, это кажется очень трудным, поскольку у меня нет времени читать книгу для начинающих, можете ли вы указать мне куда-нибудь пойти, чтобы объяснить, что вы предложил? Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню