История изменений
Исправление 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)
Тогда он более похожее выдает на пример использования
['думая', 'петь', 'Решая', 'начал', 'остановился', 'задачи', 'услышав']
Но как видно, ошибочно слово задачи из-за приставки «за» добавил.
Во вторых, я уже приводил в теме пример с «Мой дядя самых честных правил». Правил - это глагол или существительное? Это алгоритм думает, что глагол, а также «Дядя» - глагол. Видимо деепричастное =)))))))
['правил', 'дядя']
я как написал алгоритм, который первый в голову пришел, нейронка тож самое накалякала. а если она думает как я, то все правильно
Все неправильно, задача очень нетривиальная и в лоб не решается.