Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 文本拉丁语中的日期识别_Python_Nlp_Natural Language Processing - Fatal编程技术网

Python 文本拉丁语中的日期识别

Python 文本拉丁语中的日期识别,python,nlp,natural-language-processing,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

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

这是我算法的摘录:

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         
def校验日期(i,记录,否):
如果(i==0和isNumber(记录[i]):#获取契约号
df.loc[no,'DeedNo']=记录[i]
rec=记录[i]。下限()
拆分=记录拆分()
如果(拆分[0]=='die'):
项目=deque(拆分)
items.popleft()
拆分=列表(项目)
如果记录中有('eodem'):
n=no-1
如果(否>1):
while(pd.isnull(df.ix[n]['latinate']):
n=n-1
印刷品
df['latinate'][no]=df.ix[n]['LatinDate']

如果(单词在字符串中(latinMonths,rec.lower())和len(split),您可以使用一些机器学习算法,比如adaboost,使用 添加一些上下文特性,如单词类型、用于检测是否明显是日期的正则表达式、周围的单词类型等。
是一个教程。

我们不知道您当前使用的是什么方法,因为您没有实际共享它。您发布的Python代码没有正确的缩进,因此无法运行。请您的问题来纠正这个问题。代码格式非常简单-粘贴代码,选择它,键入ctrl-K(虽然这只适用于桌面版本的网站;但在移动设备上,您需要在每个代码行前手动添加四个空格)。另请参阅