У меня есть список строк, которые все ранние современные английские слова заканчиваются на «th». К ним относятся хат, назначает, демантет и т. Д. - все они сопряжены для единственного лица третьего лица.
В рамках гораздо более крупного проекта (использующего мой компьютер для преобразования этнекста Гутенберга из Гаргантюа и Пантагрюэля в нечто более похожее на английский 20-го века, так что я смогу читать его легче) два или три символа от всех этих слов и замените их на «,», затем используйте слегка измененную функцию для слов, которые еще не были модернизированы, оба включены ниже.
Моя главная проблема в том, что мне просто не удается правильно набрать текст на Python. Я считаю, что эта часть языка действительно сбивает с толку.
Вот функция, которая удаляет th:
from __future__ import division
import nltk, re, pprint
def ethrema(word):
if word.endswith('th'):
return word[:-2] + 's'
Вот функция, которая удаляет посторонние е:
def ethremb(word):
if word.endswith('es'):
return word[:-2] + 's'
следовательно, слова «ослабевает» и «обвиняет» будут проходить через Этрему, но не через Этрем (этрему), в то время как слово «абхоррет» должно проходить через оба.
Если кто-нибудь может придумать более эффективный способ сделать это, я весь слух.
Вот результат моей очень любительской попытки использовать эти функции в списке токенов, которые необходимо модернизировать:
>>> eth1 = [w.ethrema() for w in text]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'ethrema'
Так что, да, это действительно проблема набора текста. Это первые функции, которые я когда-либо писал на Python, и я не знаю, как применить их к реальным объектам.