我正在使用Python从路透社中提取有关某些公司的信息。我已经从此页那里得到了军官/行政人员的姓名、传记和报酬。
现在,我想从传记部分摘取以前的职位头衔和公司,其内容如下:
Donald T. Grimes先生自2008年5月起担任狼獾公司高级副总裁、首席财务官和财务主任。2007年至2008年,他担任Keystone汽车运营公司执行副总裁兼首席财务官,该公司是汽车配件和设备的经销商。在Keystone之前,Grimes先生在Brown-Forman公司担任了一系列高级公司和部门的财务职务,该公司是高档葡萄酒和烈酒的制造商和销售商。在布朗福曼任职期间,格里姆斯先生于2006年至2007年担任副总裁兼饮料财务总监;2003年至2006年任公司规划和分析主任副总裁;1999年至2003年任布朗福曼精神美国公司高级副总裁兼首席财务官。
我可以使用简单的regex来获取开始和年份,但我不知道如何写regex来获得标题和公司名称。我知道字符串格式不一致,所以我会接受至少70%的情况下有效的答案。这是我想要的输出:
2007-2008, executive vice president and chief financial officer, Keystone Automotive operations发布于 2011-10-14 02:04:51
您试图解决的问题是众所周知的,您会发现大量的研究论文描述了方法和算法,如果您在google上搜索“命名实体提取”和“关系提取”这两个术语的话,那么一些好的起点是:
这些只是我发现有趣的几个链接,有更多的,也许比这些更好的链接,但这应该会让你开始。
发布于 2011-10-13 19:27:47
我不认为会有一个单一的正则表达式,你可以使用这一点,除非它真的很讨厌。我认为解决这个问题的方法可能是自然语言处理。当然有这样的包,但是使用它们可能并不简单。
本质上,你想用"X是/曾经Y“这样的句子,找出哪一部分是名字,哪一部分是职位列表,哪些部分是无关的。也许要寻找大写或小单词,如“和”和" of“的单词序列?
(?:\u\w+)( (?:\u\w*)|(?:of)|(?:and))* #Note the space\u意味着下一个单一字符( \w+组的第一个字符)是大写的。还没有测试过,但似乎应该能用。这可能是一个重要的问题。
https://stackoverflow.com/questions/7757554
复制相似问题