Я рад объявить о выпуске моего первого пакета Python, englishidioms
. Этот пакет является мощным инструментом для определения английских идиомов, фраз и фразовых глаголов в предложениях с базой данных из 22 209 уникальных выражений.
Предпосылки: как часть проекта по обработке личного естественного языка (NLP), я обнаружил необходимость в пакете Python, способной распознавать идиоматические выражения в английских предложениях. К моему удивлению, я не мог найти подходящее решение, поэтому я решил построить его с нуля.
Установка: вы можете легко установить пакет с помощью PIP: pip install englishidioms
Как его использовать:
>>> from englishidioms import find_idioms
>>> sentence = "The plan didn't work, but I'll give you an a for effort for trying."
>>> results = find_idioms(sentence, limit=1)
>>> print(results)
[{'phrase': '*an A for effort', 'definition': 'acknowledgement for having tried to do something, even if it was not successful. (*Typically: get ~; give someone ~.) _ The plan didn’t work, but I’ll give you an A for effort for trying.'}]
Аргументы
sentence
(Str) - английское предложение, которое вы хотите проанализировать (требуется).limit
(int) - максимальное количество результатов, упорядоченное по сопоставлению точек (по умолчанию: 10).html
(bool) - возвращаемая фраза и определение в html markup, чтобы сохранить исходное форматирование из словаря (по умолчанию: false).span
(BOOL) - Возвращение сопоставления SPAN в предложении (по умолчанию: false).entry_range
bool) - вернуть словарь начала/конечная строка для отладки (по умолчанию: false).entry_id
(bool) - вернуть идентификатор записи словаря в фразах.json для отладки (по умолчанию: false).Как это работает (упрощено):
Этот пакет был разработан путем анализа всех словарных записей в «Словаре McGraw-Hill об американских идиомах и фразовых глаголах». Используя библиотеки Python, такие как Python-Docx и используя предопределенное форматирование, я извлекал ключевые точки из каждой записи. Эти ключевые моменты включают:
Константы: фиксированные классы слов, которые образуют ядро идиоматического выражения. Переменные: переменные классы слов, которые могут быть широко сопоставлены. Необязательные константы: дополнительные дополнительные слова или фразы в пределах одного идиоматического выражения. Глаголы: глаголы, которые обычно предшествуют идиоматической фразе.
Например, рассмотрим запись в словаре:
* (мертвый) звонок (для кого -то ) рис. очень похожий по внешнему виду для кого -то другого. (*Обычно: быть ~; выглядеть как ~.) _ Вы уверены, что мертвый звонок для моего брата. _ Разве он не звонит для Чака?
Для этой записи мы определяем:
С каждым вызовом методу «find_idioms» алгоритм поиска рассматривает эти ключевые моменты в 22 209 записях словаря и соответствует им с данным предложением, учитывая грамматические вариации и порядок слов. Затем он возвращает список соответствующих записей.
Производительность:
Я проверил этот пакет на 40 442 предложения из книги, и он обнаружил правильную запись в сопоставлении словаря в 91% случаев. Кроме того, среднее время выполнения для обработки предложения составляет приблизительно 3 секунды.
Детали проекта
Этот проект разделен на несколько ключевых шагов:
1. Получение данных:
Мы начинаем с получения исходного материала от «МакГроу-Хилл Словарь американских идиомов и фразовых глаголов». Вы можете получить доступ к копии этого ресурса в формате PDF здесь.
Далее мы конвертируем PDF в более удобный формат, документ DOCX под названием «Чистый вывод.docx». Мы переформатируем его из двухколонного макета в одноконкурсный текст. Обратите внимание, что технические детали этого процесса преобразования не обсуждаются в этой документации.
2. Подготовка данных:
Мы выполняем серию из двенадцати шагов для обработки и уточнения данных из «lean-output.docx» и сохраняем их в «frase.json». Каждый шаг управляется конкретным модулем Python:
Важно запустить эти модули в указанном порядке, чтобы создать окончательную версию «frase.json», которая является комплексной базой данных для данных из «recale-output.docx». В Windows CMD вы можете запустить их последовательно, используя эту команду:
python A_breakitup.py && python A_splitrandom.py && python B_breakitup.py && python C_readit.py && python D_readit.py && python E_tidyup.py && python F_tidyup.py && python FF_manualoverride.py && python G_asterisk.py && python H_hyphenated_words.py && python I_getpatterns.py && python J_getwordforms.py && python K_getexamples.py
3. Основная функциональность:
Сердцем проекта является модуль 'l_algorithm.py'. Он использует «фразы», чтобы соответствовать идиоматическим выражениям с английскими предложениями. Этот модуль имеет решающее значение для пакета, позволяя идентификации идиом, фраз и фразовых глаголов в предложениях.
Сердцем проекта является модуль «l_algorithm.py», который находится в каталоге «Englishidioms». Он использует «фразы», чтобы соответствовать идиоматическим выражениям с английскими предложениями. Сохранение 'l_algorithm.py' 'и' frase.json 'в каталоге «Englishidioms» служит двойной цели:
Уменьшенный размер упаковки: изолируя эти основные компоненты, мы делаем пакет меньше с точки зрения дискового пространства. Это означает, что пользователям нужно только установить основные компоненты, что делает пакет более легким и эффективным.
Минимизированные зависимости: комбинация «l_algorithm.py» и «frase.json» требует меньше внешних зависимостей по сравнению со всем пакетом. Это упрощает процесс установки для конечных пользователей, уменьшая необходимость установить дополнительные библиотеки и требования, которые могут не потребоваться для их конкретного использования.
Справочник «EnglishIdioms» также включает три необходимые ресурсы NLTK, необходимые для запуска 'l_algorithm.py'
Принимая этот оптимизированный подход, мы гарантируем, что пользователи могут быстро и легко получить доступ к основной функциональности пакета без каких -либо ненужных накладных расходов.
4. Проверка и тестирование:
Чтобы обеспечить качество данных и эффективность алгоритма поиска в 'l_algorithm.py, «Мы используем три дополнительных модуля:
Обратите внимание, что для конечных пользователей, которые хотят использовать пакет, необходимы только 'l_algorithm.py' и «фразы.json». Другие модули в первую очередь предназначены для обработки данных и валидации во время разработки.
Как внести свой вклад:
Весь проект с открытым исходным кодом и доступен на GitHub. Не стесняйтесь исследовать код, вносить улучшения и внести свой вклад в его разработку.
Отказ от ответственности: этот пакет Python предназначен для предоставления пользователям доступа к коллекции идиом и фразовых глаголов, как они появляются в «Словаре McGraw-Hill от американских идиом и фразовых глаголов». Обратите внимание, что этот пакет не одобрен или авторизован McGraw-Hill Companies, Inc., владельцем авторского права словаря.
Уведомление об авторском праве: «Словарь McGraw-Hill американских идиомов и фразовых глаголов» является материалом, защищенным авторским правом, и его использование зависит от терминов авторских прав, установленных McGraw-Hill Companies, Inc. Этот пакет зависит от контента, полученного из личной копии Книга.
Предполагаемое использование: этот пакет Python предназначен только для образовательных и исследовательских целей, а также для личного некоммерческого использования. Это не предназначено для коммерческих приложений.
Ответственность пользователя: используя этот пакет Python, вы признаете, что вы должны соблюдать законы об авторском праве и Условия использования, изложенные в исходной работе. Вам разрешено использовать этот пакет только для личных, некоммерческих целей. Любое коммерческое применение или распространение результатов этого пакета может потребовать предварительного письменного согласия издателя, McGraw-Hill Companies, Inc. настоятельно рекомендуется, чтобы пользователи, которые намерены использовать этот пакет на регулярной основе, рассмотреть возможность покупки собственной личной копии «Словарь McGraw-Hill американских идиомов и фразовых глаголов», чтобы поддержать авторов и придерживаться законов об авторском праве.
Поддержите автора: если вы намереваетесь использовать содержание этого пакета в коммерческих целях, я настоятельно рекомендую вам получить необходимые разрешения и лицензии от McGraw-Hill Companies, Inc., чтобы получить доступ к всем идиомам и фразовым глаголам, рассмотрим. Покупка собственной личной копии «МакГроу-Хилл Словарь американских идиомов и фразовых глаголов».
Ответственность: Создатели и сопровождающие этого пакета Python не несут ответственности за любое нарушение авторских прав или неправильное использование пакета. Пользователи несут ответственность за соблюдение всех юридических требований и авторских прав при использовании этого пакета.
Я поощряю этическое и законное использование этого пакета, уважая права владельцев авторских прав и авторов. Пожалуйста, используйте это ответственно.