我正在尝试处理一个 CSV 文件,该文件在每一行中都有一个文本字段,其中包含组织名称和该组织中个人的位置作为非结构化文本。这个字段通常是一堆这样的文本:
Assoc. Research Professor Dept. Psychology Univ. California Santa Barbara
我需要提取职位和组织名称。对于这个职位,我将 preg_match 用于针对不同职业的一系列大约 60 个不同的正则表达式,我认为它工作得很好(我的猜测是它捕获了大约 80%)。但是,我在获取组织名称时遇到了麻烦。我有一个 MySQL 表,其中包含大约 16,000 个组织名称,我可以对其执行简单的 preg_match,但由于常见的拼写错误和缩写,它只能捕获大约 30% 的组织。例如,我的数据库有
University of California Santa Barbara
但 CSV 文件可能有任何选项:
Univ Cal Santa Barbara
University Cal-Santa Barbara
University California-Santa Barbara
Cal University, Santa Barbara
我需要处理数十万条记录,而我无法花时间更正当前未正确处理的 70% 的记录或为每个组织苦心创建多个别名。我想做的是找出小的差异(例如小的拼写错误、连字符与空格以及常见的缩写),如果仍然找不到匹配项,则理想地识别组织名称并创建新记录为了它。
- Python 或 PHP 中的哪些库或工具允许执行具有更广泛影响的相似性匹配?
- Python 中的 NLTK 会发现拼写错误吗?
- 是否可以使用 AlchemyAPI 来捕捉拼写错误的组织?到目前为止,我只能用它来捕捉拼写正确的组织
- 由于我将一个短字符串(组织名称)与一个较长的字符串(包括名称和无关信息)进行比较,使用 PHP 的similar_text 函数有什么希望吗?
任何帮助或见解将不胜感激。