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

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将<String,Object>映射到JSONString   java如何读取多个文件。if语句中的equals语句   java启动Glassfish时出现间歇性异常   java如何根据用户偏好进行动态API调用?   HibernateJavaSpring,处理域对象   java Thumbnailator库将图像转换为cmyk   Java初学者租赁计划   java存储和检索特殊字符mysql   在Java 10上评测远程JProfiler   授权中的java角色概念   java使用Dropwizard和JDBI查询具有多个模式的数据库?   java冲突检测,在libgdx中   java如何使用SAX解析器解析xml文件中的嵌套标记   使用asm重建方法时的java错误指令   java如何使用GWT增加ListBox的文本大小   java:我的编码应该遵循什么样的设计结构   java“is prime”算法运行时   java如何保护我的进程被终止?