您的位置:首页 > 编程语言 > Python开发

【学习python】re 正则表达式匹配特定词性的conll,提取句子主干(主谓宾)

2018-03-11 12:52 806 查看
------------------找寻特定内容-------------------------------
>>> # -*- coding: utf-8 -*-
>>> import re
>>> pattern = re.compile(u'[白蓝绿黄][A-Z][A-Z0-9]{5}')
>>> match = pattern.match(u'白A1B2C3')
>>> if match:
...   print('OK')
... else:
...   print('NO')
...
OK
>>>
-------------------------------------------------------------------
>>> pattern = re.compile(u'[白蓝绿黄]?\d')
>>> match = pattern.match(u'白1')
>>> if match:
...   print('OK')
... else:
...   print('NO')
...
OK
>>> match = pattern.match(u'白')
>>> if match:
...   print('OK')
... else:
...   print('NO')
...
NO

>>>
----------------------------------------------------------------------
>>> f = open('E:/abc.txt').read()
>>> import re
>>> pattern = re.compile(r'\S')
>>> match = patter.match(f)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'patter' is not defined
>>> match = pattern.match(f)
>>> print(match)
<_sre.SRE_Match object; span=(0, 1), match='1'>

-----------------------------------------------------------------
>>> print(match.group())
1

>>>
---------------------------------------------------------------
>>> pattern = re.compile(r'\w')
>>> f = open('E:/abc.txt').read()
>>> match = pattern.match(f)
>>> print(match)
<_sre.SRE_Match object; span=(0, 1), match='1'>

>>>
------------------------------------------------------------
>>> match = r'\d'
>>> f = open('E:/abc.txt').read()
>>> z = re.search(match,f).group()
>>> print(z)
1

>>>
----------------------------------------------------------
>>> match = r'[\u4e00-\u9fa5]'
>>> f = open('E:/abc.txt').read()
>>> z = re.search(match,f).group()
>>> print(z)


>>>
---------------------------------------
>>> match = r'[\u4e00-\u9fa5]*'
>>> f = open('E:/abc.txt').read()
>>> z = re.search(match,f).group()
>>> print(z)

>>> match = r'[\u4e00-\u9fa5]+'
>>> f = open('E:/abc.txt').read()
>>> z = re.search(match,f).group()
>>> print(z)
徐先生

>>>
---------------------------------------
>>> match = r'[\u4e00-\u9fa5]+'
>>> f = open('E:/abc.txt').read()

>>> z = re.findall(match,f)
>>> print(z)
['徐先生', '徐先生', '主谓关系', '还', '还', '状中结构', '具体', '具体', '状中结构', '帮助', '帮助', '核心关系', '他', '他', '兼语', '确定', '确定', '动宾关系', '了', '了', '右附加关系', '把', '把', '状中结构', '画', '画', '介宾关系', '雄鹰', '雄鹰', '动宾关系', '标点符号', '松鼠', '松鼠', '并列关系', '和', '和', '左附加关系', '麻雀', '麻雀', '并列关系', '作为', '作为', '动宾关系', '主攻', '主攻', '定中关系', '目标', '目标', '动宾关系', '标点符号']

>>>
---------------------------------------
>>> match = r'[\u4e00-\u9fa5]+?'
>>> f = open('E:/abc.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['徐', '先', '生', '徐', '先', '生', '主', '谓', '关', '系', '还', '还', '状', '中', '结', '构', '具', '体', '具', '体', '状', '中', '结', '构', '帮', '助', '帮', '助', '核', '心', '关', '系', '他', '他', '兼', '语', '确', '定', '确', '定', '动', '宾', '关', '系', '了', '了', '右', '附', '加', '关', '系', '把', '把', '状', '中', '结', '构', '画', '画', '介', '宾', '关', '系', '雄', '鹰', '雄', '鹰', '动', '宾', '关', '系', '标', '点', '符', '号', '松', '鼠', '松', '鼠', '并', '列', '关', '系', '和', '和', '左', '附', '加', '关', '系', '麻', '雀', '麻', '雀', '并', '列', '关', '系', '作', '为', '作', '为', '动', '宾', '关', '系', '主', '攻', '主', '攻', '定', '中', '关', '系', '目', '标', '目', '标', '动', '宾', '关', '系', '标', '点', '符', '号']

>>>
----------------------------------------
>>> match = r'[\u4e00-\u9fa5]+\sn'
>>> f = open('E:/abc.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['徐先生\tn', '雄鹰\tn', '松鼠\tn', '麻雀\tn', '目标\tn']
>>> match = r'[\u4e00-\u9fa5]+\sn*'
>>> f = open('E:/abc.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['徐先生\t', '徐先生\tn', '主谓关系\t', '还\t', '还\t', '状中结构\t', '具体\t', '具体\t', '状中结构\t', '帮助\t', '帮助\t', '核心关系\t', '他\t', '他\t', '兼语\t', '确定\t', '确定\t', '动宾关系\t', '了\t', '了\t', '右附加关系\t', '把\t', ' 把\t', '状中结构\t', '画\t', '画\t', '介宾关系\t', '雄鹰\t', '雄鹰\tn', '动宾关系\t', '标点符号\t', '松鼠\t', '松鼠\tn', '并列关系\t', '和\t', '和\t', '左附加关系\t', '麻雀\t', '麻雀\tn', '并列关系\t', '作为\t', '作为\t', '动宾关系\t', '主 攻\t', '主攻\t', '定中关系\t', '目标\t', '目标\tn', '动宾关系\t', '标点符号\t']

>>>
--------------------------------------------------------
>>> match = r'[\u4e00-\u9fa5]+\sv'
>>> f = open('E:/abc.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['帮助\tv', '确定\tv', '画\tv', '主攻\tv']

>>>
---------------------------------------------------------
>>> match = r'[\u4e00-\u9fa5]+\sr'
>>> f = open('E:/abc.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['他\tr']

>>>
---------------------------------------------------------
>>> match = r'[\u4e00-\u9fa5]+\sn|[\u4e00-\u9fa5]+\sv|[\u4e00-\u9fa5]+\sr'
>>> f = open('E:/abc.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['徐先生\tn', '帮助\tv', '他\tr', '确定\tv', '画\tv', '雄鹰\tn', '松鼠\tn', '麻雀\tn', '主攻\tv', '目标\tn']

>>>
---------------------------------------------------------



问题是如何,去掉字母和符号,或者把列表词语,连接起来。
---------------------------------------------------------



>>> f = open('E:/abcd.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['目前\tn', '有\tv', '哲学史\tn', '我\tr', '目的\tn', '要\tv', '它们\tr', '之中\tn', '加上\tv']
>>> match = r'[\u4e00-\u9fa5]+\sn|[\u4e00-\u9fa5]+\sv|[\u4e00-\u9fa5]+\sr|[\u4e00-\u9fa5]+\sc'
>>> f = open('E:/abcd.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['目前\tn', '有\tv', '哲学史\tn', '我\tr', '目的\tn', '并\tc', '不是\tc', '要\tv', '它们\tr', '之中\tn', '加上\tv']
>>&
4000
gt; match = r'[\u4e00-\u9fa5]+\sn|[\u4e00-\u9fa5]+\sv|[\u4e00-\u9fa5]+\sr|[\u4e00-\u9fa5]+\sc|[\u4e00-\u9fa5]+\sm'
>>> f = open('E:/abcd.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['目前\tn', '有\tv', '不少\tm', '哲学史\tn', '我\tr', '目的\tn', '并\tc', '不是\tc', '要\tv', '它们\tr', '之中\tn', '加 上\tv', '一\tm']

>>>
-----------------------------------------------------------------
>>> match = r'[\u4e00-\u9fa5]+\sn|[\u4e00-\u9fa5]+\sv|[\u4e00-\u9fa5]+\sr|[\u4e00-\u9fa5]+\sc'
>>> f = open('E:/abcde.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['目前\tn', '有\tv', '哲学史\tn', '我\tr', '目的\tn', '并\tc', '不是\tc', '要\tv', '它们\tr', '之中\tn', '加上\tv', '我\tr', '目的\tn', '是\tv', '要\tv', '揭示\tv', '哲学\tn', '乃是\tv', '社会生活\tn', '与\tc', '政治\tn', '生活\tv', '组成\tv', '部分\tn', '它\tr', '并\tc', '不是\tc', '个人\tn', '做出\tv', '思考\tv', '而是\tc', '有\tv', '各种\tr', '体系\tn', '盛行\tv', '各种\tr', '社会\tn', '性格\tn', '产物\tn', '与\tc', '成因\tn', '这\tr', '目的\tn', '要求\tn', '我们\tr', '历 史\tn', '叙述\tv', '哲学史\tn', '做\tv', '我\tr', '发觉\tv', '这\tr', '读者\tn', '是\tv', '熟悉\tv', '那几段\tn', '时期\tn', '经院哲学\tn', '大时代\tn', '乃是\tv', '一世\tn', '纪\tn', '改革\tv', '产物\tn', '而\tc', '这些\tr', '改革\tv', '又是\tc', '前\tn', '时期\tn', '腐化\tv', '反作用\tn', '如果\tc', '罗马\tn', '灭亡\tv', '与\tc', '中古\tn', '教权\tn', '兴 起\tv', '之间\tn', '那几\tn', '没有\tv', '知识\tn', '话\tn', '会\tv', '难于\tv', '理解\tv', '知识界\tn', '气氛\tn', '处 理\tv', '这段\tr', '时期\tn', '正如\tv', '处理\tv', '其他\tr', '时期\tn', '我\tr', '目的\tn', '在于\tv', '提供\tv', '造 成\tv', '哲学家\tn', '时代\tn', '以及\tc', '哲学家\tn', '其\tr', '形成\tv', '与\tc', '那些\tr', '时代\tn', '我\tr', '认 为\tv', '是\tv', '若\tc', '想\tv', '哲学家\tn', '有\tv', '同情\tv', '理解\tv', '有\tv', '加以\tv', '叙述\tv', '历史\tn']

>>>
-----------------------------------------------------------------
>>> match = r'[\u4e00-\u9fa5]+\sn|[\u4e00-\u9fa5]+\sv|[\u4e00-\u9fa5]+\sr|[\u4e00-\u9fa5]+\sc|[\u4e00-\u9fa5]+\sm'
>>> f = open('E:/abcde.txt').read()
>>> z = re.findall(match,f)
>>> print(z)
['目前\tn', '有\tv', '不少\tm', '哲学史\tn', '我\tr', '目的\tn', '并\tc', '不是\tc', '要\tv', '它们\tr', '之中\tn', '加 上\tv', '一\tm', '我\tr', '目的\tn', '是\tv', '要\tv', '揭示\tv', '哲学\tn', '乃是\tv', '社会生活\tn', '与\tc', '政治\tn', '生活\tv', '一个\tm', '组成\tv', '部分\tn', '它\tr', '并\tc', '不是\tc', '个人\tn', '做出\tv', '思考\tv', '而是\tc', '有\tv', '各种\tr', '体系\tn', '盛行\tv', '各种\tr', '社会\tn', '性格\tn', '产物\tn', '与\tc', '成因\tn', '这\tr', '一\tm', '目的\tn', '要求\tn', '我们\tr', '历史\tn', '叙述\tv', '哲学史\tn', '做\tv', '我\tr', '发觉\tv', '这\tr', '读者\tn', '是\tv', '熟悉\tv', '那几段\tn', '时期\tn', '经院哲学\tn', '大时代\tn', '乃是\tv', '十\tm', '一世\tn', '纪\tn', '改革\tv', '产物\tn', '而\tc', '这些\tr', '改革\tv', '又是\tc', '前\tn', '一个\tm', '时期\tn', '腐化\tv', '反作用\tn', '如果\tc', '罗马\tn', '灭亡\tv', '与\tc', '中古\tn', '教权\tn', '兴起\tv', '之间\tn', '那几\tn', '没有\tv', '一些\tm', '知识\tn', '话\tn', '会\tv', '难于\tv', '理解\tv', '十二\tm', '三\tm', '知识界\tn', '气氛\tn', '处理\tv', '这段\tr', '时期\tn', '正如\tv', '处理\tv', '其他\tr', '时期\tn', '我\tr', '目的\tn', '在于\tv', '提供\tv', '造成\tv', '哲学家\tn', '时代\tn', '以及\tc', '哲学家\tn', '其\tr', '形成\tv', '与\tc', '那些\tr', '时代\tn', '我\tr', '认为\tv', '是\tv', '若\tc', '想\tv', '哲学家\tn', '有\tv', '同情\tv', '理解\tv', '有\tv', '加以\tv', '叙述\tv', '历史\tn']

>>>
---------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: