免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: laoliuya

如何从文档中提取实体和数据 [复制链接]

论坛徽章:
0
发表于 2019-04-28 19:15 |显示全部楼层
回复 10# dahe_1984

好像没哪不对,只是看不太懂,不是python的吧

论坛徽章:
0
发表于 2019-04-28 19:56 |显示全部楼层
10块钱?不到一个小时,肯定有大神出答案,咋样

论坛徽章:
0
发表于 2019-04-28 20:07 |显示全部楼层
回复 12# dahe_1984

好啊!!!

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
发表于 2019-04-29 08:52 |显示全部楼层
回复 7# laoliuya

就是正则嘛,至于用python,还是其它语言或工具 基本一样。单纯为了提取或匹配我觉得还是grep方便。
正则就一部分一部分看嘛
第一部分:
  1. [A-Z\d\(\)()&\p{Han}]+
复制代码
你没有给出什么是实体的精确定义,看你提供的样本我只能认为实体可能由大写字母,数字,中英括号,&,汉字组成,汉字在perl正则下可以用\p{Han}匹配。
第二部分:
  1. (  \d+(\.\d)?(亿元|亿|万元|元)  |   \d{1,2}(\.\d{1,2})?%(?!、)  |  :?(\d{1,2}(\.\d{1,2})?%、){1,2}\d{1,2}(\.\d{1,2})?%和\d{1,2}(\.\d{1,2})?%   )
复制代码
又可以分为三个分支,对应数值的几种情况
第一分支
  1. \d+(\.\d)?(亿元|亿|万元|元)
复制代码
表示多少钱。

第二分支
  1. \d{1,2}(\.\d{1,2})?%(?!、)
复制代码
表示只有一个百分比%,一个%后面不能是 、号。

第三分支
  1. :?(\d{1,2}(\.\d{1,2})?%、){1,2}\d{1,2}(\.\d{1,2})?%和\d{1,2}(\.\d{1,2})?%
复制代码
表示  3个或4个 百分比的形式。
开头可以有个:或者没有,  *.*%、这个可能重复1到2次,最后是*.*%和*.*%
所有的组后起来,就可以了。
最后这个正则只是为了能简单出结果,还没有过多的考虑优化和性能问题。应该有改进空间。

论坛徽章:
0
发表于 2019-04-29 16:40 |显示全部楼层
#!Python 3.7.0

import docx
import re

def search(datas, pattern):
    for line in datas:
        for tmp in re.split(',|。|;',line.text):
            if re.search(pattern, tmp):
                yield tmp

if __name__ == '__main__':
    doc     = docx.Document('1999.docx')
    for line in search(doc.paragraphs, r'(:?(\d{1,2}(\.\d{1,2})?%、){1,2}\d{1,2}(\.\d{1,2})?%和\d{1,2}(\.\d{1,2})?%)|(\d+(\.\d)?(亿元|亿|万元|元)|(\d{1,2}(\.\d{1,2})?%(?!、)))'):
        print(line, end='')
        print("\n")

大体就是这个意思,中文处理起来太恶心了。

论坛徽章:
0
发表于 2019-04-29 16:41 |显示全部楼层
研究与试验发展(R&D)经费支出占国内生产总值(GDP)的比重首次超过0.8%

    1999年全国共筹集科技活动经费1460.6亿元

比上年增加170.9亿元

同口径增长12.5%

按总人口计算的全国人均科技活动经费筹集额116元

比上年增加12.7元

    1999年国家财政科技拨款额达543.9亿元

比上年增加105.3亿元

实际增长26.8%

科技拨款占国家财政支出的比重为4.1%

其中中央财政科技拨款占中央财政支出的比重为8.6%

地方财政科技拨款占地方财政支出的比重为2.1%

    1999年科技活动经费支出总额为1284.9亿元

比上年增加156.5亿元

同口径增长13%

企业支出654.6亿元

比上年同口径增长16.6%

研究与开发机构支出496.9亿元

增长9.4%

高等学校支出85.1亿元

增长16.3%

各执行部门支出占全部科技经费支出的比重分别为50.9%、38.7%和6.6%

全年技术开发经费支出567.2亿元

比上年增加88.6亿元

增长18.5%

其中用于新产品开发支出304.6亿元

比上年增加59.4亿元

增长24.2%

劳务费支出270.2亿元

比上年同口径增长12.7%

业务费支出434.8亿元

增长16.1%

固定资产购建支出357.4亿元

增长15.7%

其他支出222.5亿元

增长3.9%

各种用途支出占支出总额的比重分别为:21.0%、33.9%、27.8%和17.3%

5个地区支出额合计达到610亿元

占各省科技经费支出合计的51.6%

    1999年全国研究与试验发展(R&D)经费支出额为678.9亿元

比上年增加127.8亿元

同口径增长17.7%

占国内生产总值(GDP)的比重为0.83%

按研究与试验发展(R&D)人员(全时工作当量)计算的人均研究与试验发展(R&D)经费支出为8.3万元

比上年增加1万元

企业研究与试验发展(R&D)经费支出为336.7亿元

比上年同口径增长19.7%

研究与开发机构支出261.2亿元

增长11.4%

高等学校支出63.5亿元

增长10.8%

各执行部门研究与试验发展(R&D)经费支出占全国研究与试验发展(R&D)经费支出额的比重分别为49.6%、38.5%和9.3%

基础研究支出为33.9亿元

比上年同口径增长13.7%

应用研究支出为151.6亿元

增长19.2%

试验发展支出为493.5亿元

增长17.5%

基础研究、应用研究和试验发展支出占研究与试验发展(R&D)支出总额的比重分别为5.0%、22.3%和72.7%

5个地区支出额合计达到315.4亿

占各省研究与试验发展经费支出合计的54.1%

论坛徽章:
0
发表于 2019-04-30 14:09 |显示全部楼层
回复 14# cfwyy

好的,谢谢大佬,我好好学习一下

论坛徽章:
0
发表于 2019-04-30 14:10 |显示全部楼层
回复 15# dahe_1984

这个好,可以直接运行

论坛徽章:
0
发表于 2019-05-04 09:30 |显示全部楼层
laoliuya 发表于 2019-04-30 14:10
回复 15# dahe_1984 这个好,可以直接运行

楼上grep的也可以直接运行呀

论坛徽章:
0
发表于 2019-05-05 15:21 |显示全部楼层
回复 19# dahe_1984

grep在哪运行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP