LINUX.ORG.RU

История изменений

Исправление praseodim, (текущая версия) :

Это нейросетка такое выдала? Хороший пример прилично выглядящей хрени.

Во первых, неверный пример использования. С этим примером выдается

['остановился', 'начал']

а не то, что написано что якобы в выводе.

Если внимательно посмотреть на код, то понятно, что остальные глаголы и не могли попасть в список. В коде ошибка, проверка ошибок, приставок, возвратных глаголов должна быть в незасимых секциях, не проверять суффиксы после окончания. Код надо так переписать:

    for word in words:
        original_word = word
        word = word.lower()
        
        if len(word) < 3 or word in exceptions:
            continue
        
        # Проверка по окончаниям
        if any(word.endswith(end) for end in verb_endings):
            verbs.append(original_word)
            continue

        # Проверка характерных суффиксов
        if any(suff in word for suff in suffixes):
            verbs.append(original_word)
            continue
               
        # Проверка приставок
        if any(word.startswith(pref) for pref in prefixes):
            verbs.append(original_word)
            continue
                
        # Для возвратных глаголов
        if word.endswith(('ся', 'сь')):
         base = word[:-2]
         if len(base) >= 2 and any(base.endswith(end) for end in verb_endings):
               verbs.append(original_word)

Тогда он более похожее выдает на пример использования

['думая', 'петь', 'Решая', 'начал', 'остановился', 'задачи', 'услышав']

Но как видно, ошибочно слово задачи из-за приставки «за» добавил.

Во вторых, я уже приводил в теме пример с «Мой дядя самых честных правил». Правил - это глагол или существительное? Этот алгоритм думает, что глагол, а также, что «Дядя» - глагол. Видимо деепричастное =)))))))

['правил', 'дядя']

я как написал алгоритм, который первый в голову пришел, нейронка тож самое накалякала. а если она думает как я, то все правильно

Все неправильно, задача очень нетривиальная и в лоб не решается.

P.S. На словарях, регулярках и функциях с ними, наверное, можно 90-95% точность обеспечить, возможно этого даже и достаточно для каких-то практических целей. Но если хотеть действительно очень точного определения, то придется заморочиться попытками учесть контент и даже смысл.

Исправление praseodim, :

Это нейросетка такое выдала? Хороший пример прилично выглядящей хрени.

Во первых, неверный пример использования. С этим примером выдается

['остановился', 'начал']

а не то, что написано что якобы в выводе.

Если внимательно посмотреть на код, то понятно, что остальные глаголы и не могли попасть в список. В коде ошибка, проверка ошибок, приставок, возвратных глаголов должна быть в незасимых секциях, не проверять суффиксы после окончания. Код надо так переписать:

    for word in words:
        original_word = word
        word = word.lower()
        
        if len(word) < 3 or word in exceptions:
            continue
        
        # Проверка по окончаниям
        if any(word.endswith(end) for end in verb_endings):
            verbs.append(original_word)
            continue

        # Проверка характерных суффиксов
        if any(suff in word for suff in suffixes):
            verbs.append(original_word)
            continue
               
        # Проверка приставок
        if any(word.startswith(pref) for pref in prefixes):
            verbs.append(original_word)
            continue
                
        # Для возвратных глаголов
        if word.endswith(('ся', 'сь')):
         base = word[:-2]
         if len(base) >= 2 and any(base.endswith(end) for end in verb_endings):
               verbs.append(original_word)

Тогда он более похожее выдает на пример использования

['думая', 'петь', 'Решая', 'начал', 'остановился', 'задачи', 'услышав']

Но как видно, ошибочно слово задачи из-за приставки «за» добавил.

Во вторых, я уже приводил в теме пример с «Мой дядя самых честных правил». Правил - это глагол или существительное? Этот алгоритм думает, что глагол, а также, что «Дядя» - глагол. Видимо деепричастное =)))))))

['правил', 'дядя']

я как написал алгоритм, который первый в голову пришел, нейронка тож самое накалякала. а если она думает как я, то все правильно

Все неправильно, задача очень нетривиальная и в лоб не решается.

Исправление praseodim, :

Это нейросетка такое выдала? Хороший пример прилично выглядящей хрени.

Во первых, неверный пример использования. С этим примером выдается

['остановился', 'начал']

а не то, что написано что якобы в выводе.

Если внимательно посмотреть на код, то понятно, что остальные глаголы и не могли попасть в список. В коде ошибка, проверка ошибок, приставок, возвратных глаголов должна быть в незасимых секциях, не проверять суффиксы после окончания. Код надо так переписать:

    for word in words:
        original_word = word
        word = word.lower()
        
        if len(word) < 3 or word in exceptions:
            continue
        
        # Проверка по окончаниям
        if any(word.endswith(end) for end in verb_endings):
            verbs.append(original_word)
            continue

        # Проверка характерных суффиксов
        if any(suff in word for suff in suffixes):
            verbs.append(original_word)
            continue
               
        # Проверка приставок
        if any(word.startswith(pref) for pref in prefixes):
            verbs.append(original_word)
            continue
                
        # Для возвратных глаголов
        if word.endswith(('ся', 'сь')):
         base = word[:-2]
         if len(base) >= 2 and any(base.endswith(end) for end in verb_endings):
               verbs.append(original_word)

Тогда он более похожее выдает на пример использования

['думая', 'петь', 'Решая', 'начал', 'остановился', 'задачи', 'услышав']

Но как видно, ошибочно слово задачи из-за приставки «за» добавил.

Во вторых, я уже приводил в теме пример с «Мой дядя самых честных правил». Правил - это глагол или существительное? Это алгоритм думает, что глагол, а также «Дядя» - глагол. Видимо деепричастное =)))))))

['правил', 'дядя']

я как написал алгоритм, который первый в голову пришел, нейронка тож самое накалякала. а если она думает как я, то все правильно

Все неправильно, задача очень нетривиальная и в лоб не решается.

Исходная версия praseodim, :

Это нейросетка такое выдала? Хороший пример прилично выглядящей хрени.

Во первых, неверный пример использования. С этим примером выдается

['остановился', 'начал']

Если внимательно посмотреть на код, то понятно, что остальные глаголы и не могли попасть в список. В коде ошибка, проверка ошибок, приставок, возвратных глаголов должна быть в незасимых секциях, не проверять суффиксы после окончания. Код надо так переписать:

    for word in words:
        original_word = word
        word = word.lower()
        
        if len(word) < 3 or word in exceptions:
            continue
        
        # Проверка по окончаниям
        if any(word.endswith(end) for end in verb_endings):
            verbs.append(original_word)
            continue

        # Проверка характерных суффиксов
        if any(suff in word for suff in suffixes):
            verbs.append(original_word)
            continue
               
        # Проверка приставок
        if any(word.startswith(pref) for pref in prefixes):
            verbs.append(original_word)
            continue
                
        # Для возвратных глаголов
        if word.endswith(('ся', 'сь')):
         base = word[:-2]
         if len(base) >= 2 and any(base.endswith(end) for end in verb_endings):
               verbs.append(original_word)

Тогда он более похожее выдает на пример использования

['думая', 'петь', 'Решая', 'начал', 'остановился', 'задачи', 'услышав']

Но как видно, ошибочно слово задачи из-за приставки «за» добавил.

Во вторых, я уже приводил в теме пример с «Мой дядя самых честных правил». Правил - это глагол или существительное? Это алгоритм думает, что глагол, а также «Дядя» - глагол. Видимо деепричастное =)))))))

['правил', 'дядя']

я как написал алгоритм, который первый в голову пришел, нейронка тож самое накалякала. а если она думает как я, то все правильно

Все неправильно, задача очень нетривиальная и в лоб не решается.