自动标记具有正义相关类别的新闻文章并提取位置信息

tagnews的Python项目详细描述


Build Status

标签新闻

tagnews是一个python库,它可以

  • 根据犯罪标签类型自动对新闻文章中的文本进行分类,例如杀人、纵火、持枪暴力等。
  • 自动提取新闻文章文本中讨论的位置,例如“55街和伍德劳恩”和“1700街区S.哈尔斯特德”。
  • 使用由cjp托管的pelias地理编码器实例检索所述位置的纬度/经度对。
  • 使用从python库解析的城市数据门户下载的形状文件获取lat/long对所属的社区区域。

听起来很有趣?下面是使用示例!

您可以在GitHub上找到源代码。

安装

您可以使用pip安装tagnews

pip install tagnews

注意:您还需要安装一些NLTK软件包:

>>>importnltk>>>nltk.download('punkt')>>>nltk.download('wordnet')

小心,tagnews需要python>;=3.5。

示例

主要的类是tagnews.CrimeTagstagnews.GeoCoder

>>>importtagnews>>>crimetags=tagnews.CrimeTags()>>>article_text=('The homicide occurred at the 1700 block of S. Halsted Ave.'...' It happened just after midnight. Another person was killed at the'...' intersection of 55th and Woodlawn, where a lone gunman')>>>crimetags.tagtext_proba(article_text)HOMI0.739159VIOL0.146943GUNV0.134798...>>>crimetags.tagtext(article_text,prob_thresh=0.5)['HOMI']>>>geoextractor=tagnews.GeoCoder()>>>prob_out=geoextractor.extract_geostring_probs(article_text)>>>list(zip(*prob_out))[...,('at',0.0044685714),('the',0.005466637),('1700',0.7173856),('block',0.81395197),('of',0.82227415),('S.',0.7940061),('Halsted',0.70529455),('Ave.',0.60538065),...]>>>geostrings=geoextractor.extract_geostrings(article_text,prob_thresh=0.5)>>>geostrings[['1700','block','of','S.','Halsted','Ave.'],['55th','and','Woodlawn,']]>>>coords,scores=geoextractor.lat_longs_from_geostring_lists(geostrings)>>>coordslatlong041.859021-87.646934141.794816-87.597422>>>scores# confidence in the lat/longs as returned by pelias, higher is betterarray([0.878,1.])>>>geoextractor.community_area_from_coords(coords)['LOWER WEST SIDE','HYDE PARK']

限制

这个项目使用机器学习来自动化数据清理/准备任务,这将是成本和时间禁止执行使用人。像所有的机器学习项目一样,结果并不完美,在某些情况下可能看起来很糟糕。

我们努力建立尽可能好的模型,但完美的准确性是很少可能的。如果你对如何做得更好有想法,请考虑reporting an issue,或者更好的contributing

我该怎么做?

好问题!请看CONTRIBUTING.md

有问题吗?

如果你有问题,请report an issue。任何意外行为都是一个问题,应该报告。如果你得到了坏的或意想不到的结果,这也是一个问题,应该报告。我们可能对此无能为力,但更多的数据很少会降低性能。

背景

我们要比较在某些地区报告的不同类型犯罪的数量与这些地区的实际发生数量。从本质上讲,某些犯罪在某些领域的代表性不足,但在其他领域的代表性过高吗?这是推动分析的主要问题。

这个问题来自Chicago Justice Project。他们对回答这个问题感兴趣已经有很长一段时间了,并且一直在收集有数据支持的答案所必需的数据。他们的努力包括

  1. 抓取芝加哥地区新闻机构几年来撰写的文章的rss提要,使他们能够收集近50万篇文章。
  2. 组织了一个令人惊叹的小组,帮助他们在这些文章上贴上“枪支暴力”和“毒品”等犯罪类别的标签,还组织了“库克县检察官办公室”、“伊利诺伊州警察”、“芝加哥警察局”和“lgbtq”、“移民”等其他杂项类别的标签。
  3. 用于进行标记的web ui最近也进行了更新,以允许突出显示地理信息,从而产生了数百篇带有标记位置子字符串的文章。

这些组件的大部分代码都可以找到here

一个积极参与这个项目的小组每周二在Chi Hack Night开会。

另请参见

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用“Wed,01 Jul 2015 17:32:41 EDT”解析字符串   java Storm apache升级(1.0.0到2.0.0)   java类驻留在不同的目录中,而不是包指定的目录。为什么?   将Java中的图像缩放到非常小的维度   java如何通过子文档从自定义方面访问ElasticSearch parentdoc字段   java如何在RationalSoftwareArchitect中使用findbugs?   Java中的事件提升处理   java值被添加到arrayList的所有索引中,而不是在“”时添加到最后一个索引中。正在使用arraylist的add()方法   JFrame中的java JPanel派生类   java如何用循环和异步方法模拟类   java Android阻止可绘制背景超出视图范围   为客户排序Java阵列   java Apache poi如何将工作表设置为枚举位置值属性?   java Rhino在使用自定义类参数调用javascript函数时出错   java格式化日期从年月日到年月日   spring如何修复java。lang.illegalargumentexception在此特定场景中是否尝试创建具有null实体的合并事件?   java如何创建更好的对象