import re
匹配数字年
year_pattern="(\d{1,4}年)"
匹配月 月比较特殊 可能会出现01月 1月这两种情况 还有10月,12月
month_pattern="(([0?][1-9])月)|(([1?][0-2])月)|([1-9]月)"
匹配日 保证匹配的数字是1-31,暂未考虑单双月和2月 闰年
day_pattern="([0?][1-9]日)|([1?][0-9]日)|([2?][1-9]日)|([3][0-1]日)"
date_pattern="(\d{1,4}年)((([0?][1-9])月)|(([1?][0-2])月)|([1-9]月)?)(([0?][1-9]日)|([1?][0-9]日)|([2?][1-9]日)|([3][0-1]日)?)"
def get_date(val):
res=re.search(date_pattern,val)
if res:
return res.group()
return None
def findall(content):
ree = re.compile(date_pattern)
result = re.findall(ree,content)
if result: #是个list
return result
def readtxt():
youtxtpath = "./aa.txt"
with open(youtxtpath,"r") as f:
line = f.readline()
result = re.search(r"自然语言",line)
if result: #匹配到
print(line) #打印文本中包含:“自然语言”这个字符串的行内容
result = re.search(r"[,.?!].*期[,.?!]",line) #打印以“期”字结尾的句子。 标点符号有多岁自己处理
if result:
print(line)
自然语言处理的难点:错别字,新词,语言与行为不一致啊,等等。。。
自然语言处理处理的层次: 1、语音层次2、词形层次3、词汇层次4、句法层次5、语义层次6、语用层次7、语境层次