исправление алгоритма максимального соответствия при токенизации языка низкого разрешения с помощью ntlk - PullRequest
0 голосов
/ 13 января 2020

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

D = ['چھی', 'معلومات', 'کا', 'بندی']


def max_match(sentence, dictionary):
    if not sentence:
        return ""
for i in range(len(sentence), -1, -1):
    first_word = sentence[:i]
    remainder = sentence[i:]
    if first_word in dictionary:
        return first_word + " " + max_match(remainder, dictionary)
    first_word = sentence[0]
    remainder = sentence[1:]
        return first_word + max_match(remainder, dictionary)

print (max_match('چھیمعلوماتکا بندی'), D)

Ошибка SyntaxError: "return" outside function

1 Ответ

0 голосов
/ 13 января 2020

Проблема с вашим кодом проста; Вы не смогли поместить for l oop в функцию. Ваш код должен быть таким:

D = ['چھی', 'معلومات', 'کا', 'بندی']


def max_match(sentence, dictionary):
    if not sentence:
        return ""
    for i in range(len(sentence), -1, -1):
        first_word = sentence[:i]
        remainder = sentence[i:]
        if first_word in dictionary:
            return first_word + " " + max_match(remainder, dictionary)
        first_word = sentence[0]
        remainder = sentence[1:]
        return first_word + max_match(remainder, dictionary)

print(max_match('چھیمعلوماتکا بندی', D))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...