Задать вопрос

Как сделать дату одним токеном?

Есть токенайзер, который на приведенном этапе делит все по пробелам, чтобы потом эти разделенные части текста стали отдельными токенами. Проблема в том, что некоторые сущности, например, даты, не надо делить на пробелы, а на этом этапе нужно все их найти по регулярному выражению и убрать пробелы между его частями. Как это можно сделать?

def tokenize_line(line):
    """
    Разбивает строчку line на токены
    """
    #Регулярное выражение примерно такое: '\d{1,2}[. ](\d{1,2}|янв(?:аря)?|фев(?:аля)?|мар(?:та)?|апр(?:еля)?|мая|июн(?:я)?|июл(?:я)?|авг(?:уста)?|сент(?:ября)?|окт(?:ября)?}нояб(?:ря)?|дек(?:абря)?)[. ]\d{4}

    splitted = line.split()
    tokens = []
    for word in splitted:
        tokens.extend(tokenize_word(word))
    return tokens
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abcd0x00
Сначала делишь всё по пробелам, а потом эти лексемы проходишь и склеиваешь обратно в даты части, которые можно в них склеить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы