Я хотел получить даты и другие временные объекты из набора строк. Можно ли это сделать без разбора строки для дат в JAVA, поскольку большинство парсеров имеют дело с ограниченным объемом шаблонов ввода. Но ввод - это ручная запись, которая здесь и, следовательно, неоднозначна.Как получить все виды дат и временных значений из текста
Входы могут быть как:
12 сентября | середине марта | 12.September.2013
12 сентября | 12 сентября | 2013
13 сентября | 12 сентябрь | 12, февраль, 2013
Я прошел через много ответов на поиск даты в Java, но большинство из них не имеет дела с таким огромным объемом ввода узоры.
Я пробовал использовать класс SimpleDateFormat
и использовать некоторые функции parse() для проверки разрывов функции разбора, что означает ее не дату. Я пробовал использовать regex
, но я не уверен, подходит ли он в этом сценарии. Я также использовал ClearNLP для аннотации дат, но не дает надежного набора аннотаций.
Наиболее близким подходом к получению этих значений может быть использование Chain of responsibility
, как указано ниже. Есть ли библиотека, которая имеет набор шаблонов для даты. Я могу использовать это, может быть?
Где-то вы должны ограничить область действия, попробуйте обернуть ввод в свой собственный фиксированный формат. –
@ ankur-singhal слишком поздно для этого приятеля Я не могу изменить эти старые данные сейчас, его уже есть, я только извлекаю – Identity1
Можете ли вы предоставить некоторую информацию о том, на какие даты должны соответствовать линии? 'mid-March' немного слишком неоднозначен даже для обработки человеком. – npinti