поиск модуля имени #python, похожего на enchant

#python #string #list

#python #строка #Список

Вопрос:

Недавно я получил задание посчитать количество СЛОВ в предложении. достаточно просто, не так ли?

вы присваиваете входное предложение списку, вы .split() его, а затем вы .count .

проблема в том:

а) что, если предложение не является предложением? (не заканчивается точкой)? достаточно просто решить: проверка строки[-1][-1]==».» и мы закончили.

б) здесь все становится сложнее….

что, если слово — это вообще не слово??

примеры: djgghjdjgf, 7zark7. blizz-ard, twi @ter и т. Д.

Я нашел pyenchant для решения большинства проблем … но:

  1. он не распознает слова, которые заканчиваются апострофом (‘), например, Chris’ — как слово. на самом деле, он вообще не распознает имена как слова….

Я могу запустить double .check: один для pyenchant, но я должен сделать другой, чтобы увидеть, является ли это именем .. которое является словом…

кто-нибудь знает похожий на pyenchant (который в основном представляет собой словарь), только с ИМЕНАМИ (если таковые существуют)?

это было бы очень ценно.

другие решения также приветствуются.

p.s.

len(s.split()) просто не может быть правильным? Если я правильно #%#$65477 — это НЕ (!) слово. это просто элемент в списке (и меня попросили указать слова, вероятно, настоящие).

еще раз спасибо.

Комментарии:

1. Запрос на одобрение модулей не по теме. Не усложняйте ситуацию. Если вам нужно подсчитать конкретные слова, запросите их исчерпывающий список. Нет «списка имен» — Джон, Джон, Джоан, Джобс — какое имя является именем? «Джобс сказал …» и «Джобс редко бывает веселым» — где это используется в качестве имени, а где нет? Контекст имеет значение: «Стив Джоб — классный парень. Джобс сказал … » Если вам нужно различать «значимое слово» и «буквенный мусор», вам могут понадобиться возможности обработки контекста, семантики или естественного языка. Кстати. предложения также могут заканчиваться на ? или ! рядом .

2. Вы можете извлечь выгоду из чтения ложных представлений программистов об именах — просто для удовольствия и для расширения понятия «Имя».

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

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

Ответ №1:

как и сказал #Patrick Artne, нет способа отличить имена с двойным значением и множеством причин. в ореховой скорлупе — то, о чем я спрашивал, просто невозможно сделать.