Как вы расширяете аббревиатуры (например, «is» = специалист по информации), оставляя одно и то же слово в другом контексте без расширения (например, «is»)? - PullRequest
0 голосов
/ 01 июля 2019

Я работаю над проектом, в котором я должен расширить наши доменные специфические аббревиатуры, такие как «IS» (специалист по информации).Тем не менее, текущий сценарий у меня также расширяет общие слова, такие как «есть» (например, он смешной).Как я могу различить, действительно ли слово является аббревиатурой?

В настоящее время я использую словарь с ключами в качестве аббревиатур и значениями в качестве расширенных версий акронимов.

РЕДАКТИРОВАТЬ: я должен был указать, что меня больше беспокоит крайслучаи, когда сокращения не пишутся с заглавной буквы и не имеют периодов между буквами.

Ответы [ 3 ]

0 голосов
/ 01 июля 2019

Вы можете разделить слова в списке, затем проверить, есть ли какое-либо из слов во всех CAPS, и сравнить их со своим словарем.

0 голосов
/ 01 июля 2019

Предполагая, что все аббревиатуры заглавные, вы можете просто сделать простое разбиение и сравнить.

def expand(string, dict):
    tokens = string.split(" ")
    for token in tokens:
        if token in dict:
            yield dict[token]
        else:
            yield token

d = {"IS":"Informatoin Specialist","SO":"Stack Overflow"}
s = "John is an IS at SO"

print(*[t for t in expand(s,d)])

#John is an Information Specialist at Stack Overflow
0 голосов
/ 01 июля 2019

Вам нужно убедиться, что все, что вы делаете, чувствительно к регистру. Вы также должны проверить наличие . промежуточных символов.

Я бы разбил каждое слово в строке, отыскивал все заглавные и применял к этим словам только словарь. В качестве альтернативы вы можете использовать глобальное регулярное выражение find / replace для аналогичных операций, и он может искать и «IS», и «I.S.».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...