3

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

这是我的算法的摘录:

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         
4

1 回答 1

1

您可以使用一些机器学习算法,例如 adaboost,使用IOB 标记 添加一些上下文特征,例如单词的类型、正则表达式来检测它是否明显是日期、周围的单词类型等。 是一个教程。

于 2018-07-29T15:13:45.443 回答