Chronic (Ruby NLP date/time parser) for python?

1.9k Views Asked by At

Does anyone know of a library like chronic but for python?

Thanks!

3

There are 3 best solutions below

0
On BEST ANSWER

Have you tried parsedatetime?

0
On

You can try Stanford NLP's SUTime. Related Python bindings are here: https://github.com/FraBle/python-sutime

Make sure that all the Java dependencies are installed.

0
On

I was talking to Stephen Russett at chronic. I came up with a Python example after he suggested tokenization.

Here is the Python example. You run the output into chronic.

import nltk
import MySQLdb
import time
import string
import re

#tokenize
sentence = 'Available June 9 -- August first week'
tokens = nltk.word_tokenize(sentence)

parts_of_speech = nltk.pos_tag(tokens)
print parts_of_speech

#allow white list
white_list = ['first']

#allow only prepositions
#NNP, CD
approved_prepositions = ['NNP', 'CD']
filtered = []
for word in parts_of_speech:

    if any(x in word[1] for x in approved_prepositions):
        filtered.append(word[0])
    elif any(x in word[0] for x in white_list):
        #if word in white list, append it
        filtered.append(word[0])

print filtered

#normalize to alphanumeric only
normalized = re.sub(r'\s\W+', ' ', ' '.join(filtered))
print filtered