鱼C论坛

 找回密码
 立即注册
查看: 777|回复: 15

如何从文档中提取实体和数据

[复制链接]
发表于 2019-3-27 16:49:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
从图下面的文档中提取类似经费方面的数据,比如 科技活动经费 筹集 1460.6亿元       增加  170.9亿元 增长率 2.5%  这之类的数据


示例文档:
“1999年全国科技经费投入统计公报
国家统计局  科学技术部  财 政 部
    1999年,我国科技经费投入出现快速增长势头,中央财政对科技活动的资金扶持力度继续加大,企业技术开发特别是新产品开发投入增长较快,研究与试验发展(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%。
表1.  1999年财政科技拨款情况
        财政科技拨款额   (亿元)        实际增长    %        占拨款总额      的比重%
  合      计        543.9        26.8         —
  其中:科学事业费        168.1        13.2         30.9
        科技三项费        272.8        46.9         50.2
        科研基建费        52.9        14.4         9.7
  其中:中央        355.6        25.5         65.4
        地方        188.3        29.3         34.6
二、科技经费使用
    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位的地区为:北京、上海、江苏、广东和山东,5个地区支出额合计达到610亿元,占各省科技经费支出合计的51.6%;科技经费增长幅度在全国平均水平以上的有:北京、河北、内蒙古、安徽、福建、江西、山东、湖北、湖南、广东、海南、贵州、宁夏和新疆。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-28 13:17:37 | 显示全部楼层
本帖最后由 wp231957 于 2019-3-28 13:20 编辑

>>> s2=re.findall("\d+\.\d+%|\d+%",s)
>>> print(s2)
['0.8%', '12.5%', '26.8%', '4.1%', '8.6%', '2.1%', '13%', '16.6%', '9.4%', '16.3%', '50.9%', '38.7%', '6.6%', '18.5%', '24.2%', '12.7%', '16.1%', '15.7%', '3.9%', '21.0%', '33.9%', '27.8%', '17.3%', '51.6%']
>>> s2=re.findall("\d{4}年",s)
>>> print(s2)
['1999年', '1999年', '1999年', '1999年', '1999年', '1999年']
>>> s2=re.findall("\d+\.\d+亿元|\d+亿元",s)
>>> print(s2)                           
['1460.6亿元', '170.9亿元', '543.9亿元', '105.3亿元', '1284.9亿元', '156.5亿元', '654.6亿元', '496.9亿元', '85.1亿元', '567.2亿元', '88.6亿元', '304.6亿元', '59.4亿元', '270.2亿元', '434.8亿元', '357.4亿元', '222.5亿元', '610亿元']
>>>
>>> s2=re.findall("\d+\.\d+ |\d+ ",s)   ,s)
>>> print(s2)
['543.9 ', '26.8 ', '168.1 ', '13.2 ', '30.9 ', '272.8 ', '46.9 ', '50.2 ', '52.9 ', '14.4 ', '9.7 ', '355.6 ', '25.5 ', '65.4 ', '188.3 ', '29.3 ', '34.6 ']
>>>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 13:37:38 | 显示全部楼层
楼上的兄弟,正则表达式用的好6呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-28 15:54:52 | 显示全部楼层
wp231957 发表于 2019-3-28 13:17
>>> s2=re.findall("\d+\.\d+%|\d+%",s)
>>> print(s2)
['0.8%', '12.5%', '26.8%', '4.1%', '8.6%', '2. ...

谢谢大神。
re.findall("\d+\.\d+ |\d+ ",s)   ,s) 这个没太看明白,好像也报错。
另外,那些实体名称如何获取?比如“科技活动经费”、“国家财政科技拨款额”、“科技活动经费支出”等
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 16:00:41 | 显示全部楼层
laoliuya 发表于 2019-3-28 15:54
谢谢大神。
re.findall("\d+\.\d+ |\d+ ",s)   ,s) 这个没太看明白,好像也报错。
另外,那些实体名称 ...

怎么能报错呢  我再3.7下 实测通过的
\d+表示匹配n个(0-9)
\d+\.\d+ 表示匹配小数 xxx.xx
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 16:03:17 | 显示全部楼层
另外,那些实体名称如何获取?比如“科技活动经费”、“国家财政科技拨款额”、“科技活动经费支出”等

这些东东 没啥特色 不好办 除非一个一个的配
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 16:04:05 | 显示全部楼层
re.findall("\d+\.\d+ |\d+ ",s)   ,s) 这个没太看明白,好像也报错。

我这个s 是你文档的内容  需要用类似f.read()读进来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 16:05:14 | 显示全部楼层
pf=open(r"aaa.txt","r",encoding='utf-8')
s=pf.read()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-28 16:23:49 | 显示全部楼层
wp231957 发表于 2019-3-28 16:00
怎么能报错呢  我再3.7下 实测通过的
\d+表示匹配n个(0-9)
\d+\.\d+ 表示匹配小数 xxx.xx


re.findall("\d+\.\d+ |\d+ ",s)   ,s)   这里报错是多了个右括号

现在看来最难的还是把那些实体名称搞出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 16:35:28 | 显示全部楼层
laoliuya 发表于 2019-3-28 16:23
re.findall("\d+\.\d+ |\d+ ",s)   ,s)   这里报错是多了个右括号

现在看来最难的还是把 ...

是的,那个分号和右括号 是多余的  交互模式下产生的怪物

实体名称 因为都是汉字 又和其他汉字再一起挨着  不好弄
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-28 16:40:31 | 显示全部楼层
wp231957 发表于 2019-3-28 16:35
是的,那个分号和右括号 是多余的  交互模式下产生的怪物

实体名称 因为都是汉字 又和其他汉字再一起 ...

不知道用jieba能不能行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 20:39:38 From FishC Mobile | 显示全部楼层
laoliuya 发表于 2019-3-28 16:40
不知道用jieba能不能行

啥都够呛,电脑之所以能实现自动化,是因为有些事情都是重复的,有规律的

你这没规律,不好弄
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-29 08:48:30 | 显示全部楼层
要不然,你自己创建一个列表:

类似:

  1. lst=["科技活动经费","国家财政科技拨款额","科技活动经费支出"]
  2. for x in lst:
  3.   tmp=re.findall(x,s)
  4.   print(tmp)
  5.   
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-29 14:38:02 | 显示全部楼层
wp231957 发表于 2019-3-29 08:48
要不然,你自己创建一个列表:

类似:

那还不如手动提取呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-1 16:14:35 | 显示全部楼层
来点大神
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-28 17:32:39 | 显示全部楼层
wp231957 发表于 2019-3-28 13:17
>>> s2=re.findall("\d+\.\d+%|\d+%",s)
>>> print(s2)
['0.8%', '12.5%', '26.8%', '4.1%', '8.6%', '2. ...


有人用这段代码
  1. $grep -Po '[A-Z\d\(\)()&\p{Han}]+(\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})?%)' content
复制代码

运行出以下结果:
  1. 研究与试验发展(R&D)经费支出占国内生产总值(GDP)的比重首次超过0.8%
  2. 1999年全国共筹集科技活动经费1460.6亿元
  3. 比上年增加170.9亿元
  4. 同口径增长12.5%
  5. 按总人口计算的全国人均科技活动经费筹集额116元
  6. 比上年增加12.7元
  7. 1999年国家财政科技拨款额达543.9亿元
  8. 比上年增加105.3亿元
  9. 实际增长26.8%
  10. 科技拨款占国家财政支出的比重为4.1%
  11. 其中中央财政科技拨款占中央财政支出的比重为8.6%
  12. 地方财政科技拨款占地方财政支出的比重为2.1%
  13. 1999年科技活动经费支出总额为1284.9亿元
  14. 比上年增加156.5亿元
  15. 同口径增长13%
  16. 企业支出654.6亿元
  17. 比上年同口径增长16.6%
  18. 研究与开发机构支出496.9亿元
  19. 增长9.4%
  20. 高等学校支出85.1亿元
  21. 增长16.3%
  22. 各执行部门支出占全部科技经费支出的比重分别为50.9%、38.7%和6.6%
  23. ......
复制代码

但我看不太懂,好像不是python代码,大佬帮我翻译翻译
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-14 21:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表