文字中的日期识别-拉丁语

时间:2018-07-29 15:02:07

标签: python nlp natural-language-processing

我正在处理一些包含日期的拉丁文本,并且正在使用各种正则表达式模式和基于规则的语句来提取日期。我想知道是否可以使用一种算法来训练以提取这些日期,而不是我当前使用的方法。谢谢

这是我的算法的摘录:

def checkLatinDates(i, record, no):
if(i == 0 and isNumber(record[i])): #get deed no
    df.loc[no,'DeedNo'] = record[i] 
rec = record[i].lower()
split = rec.split()
if(split[0] == 'die'):
    items = deque(split)
    items.popleft()
    split = list(items)
if('eodem' in rec): 
    n = no-1
    if(no>1):

        while ( pd.isnull(df.ix[n]['LatinDate'])):                
            n = n-1
        print n
        df['LatinDate'][no] = df.ix[n]['LatinDate']

if(words_in_string(latinMonths, rec.lower()) and len(split)<10):
    if not (dates.loc[dates['Latin'] == split[0], 'Number'].empty):
        day = dates.loc[dates['Latin'] == split[0], 'Number'].iloc[0]
        split[0] = day
        nd = ' '.join(map(str, split))
        df['LatinDate'][no] = nd
    elif(convertArabic(split[0])!= ''):
        day = convertArabic(split[0])
        split[0] = day
        nd = ' '.join(map(str, split))
        df['LatinDate'][no] = nd         

1 个答案:

答案 0 :(得分:1)

您可以使用IOB tagging使用诸如adaboost之类的机器学习算法 添加一些上下文功能,例如单词的类型,用于检测是否明显是日期的正则表达式,周围单词的类型等。 Here是一个教程。