自然语言处理和建议的方法

时间:2017-01-04 04:10:34

标签: python nlp

我是NLP的新手,我想知道它是否适合我们的业务问题。

我与外科手术管理系统合作,该系统记录患者手术的详细信息。手术后患者将有一个手术后的目的地,通常是医院的病房。问题是这是在非结构化的自由文本字段中捕获的,管理员可以在其中输入与手术有关的任何内容。此时,让供应商将其添加为数据库中的新字段不是一种选择。

我需要开发一些东西(最好是在python中)来尝试从这个自由文本中识别患者术后的位置。结果如下:'Wa​​rd 1'。一旦确定了这一点,我们就可以在结构化数据中查找有关Ward 1的其他详细信息,例如,这是否是患者的合适目的地。

自由文本的例子:

“接受WD1后操作”

“康复病房然后手术后病房1”

“术后MRI检查然后接受WD1”

“在程序之前接纳Ward1。要确认的术后目的地”

解决方案需要处理描述手术后目的地的各种不同方式,并且写入手术后目的地的变化(例如Ward 1,WD1,W1等)。

我还没有开始编码,但我最初的方法是使用正则表达式来查找与后期目的地匹配的文本,但我不想无休止地编码不同的变体。所以我认为这可能是使用NLTK的NLP的问题?

有没有人对如何处理此问题有任何建议?任何建议的工具,技术,教程,以前的经验等。非常感谢。

1 个答案:

答案 0 :(得分:0)

首先,我不经常使用上面提到的自由文本,所以我的答案可能不是最好的。如果外科医生可以完全自由地输入任何他们想要的内容,那么您将需要接受将会出现无法处理的情况(因为他们输入了一些无法修复的东西)。正则表达式是强大的,但从长远来看,它可能是处理/维护的噩梦。 NLP / NLTK是一个庞大的,非常强大的库,可能需要太多的学习才能获得很少的收益。

我的方法是保持简单。我假设您可以访问python中的文本,我会在空格上分割文本,这样您就可以得到单个单词的列表,然后扫描每个单词以获取“已知”或“已接受”的术语,如WD1,WARD1等。当然,这并不完全是直截了当的;你会有“WARD”“1”的情况,但有一些应该可以检测到的胶水代码。

我不认为你的目标应该是检测100%的所有病例(不管听起来多么奇怪)。仅涵盖大多数情况,这将更有可能为您提供可维护/可扩展的代码,并且仍然可以使您的流程自动化。

祝你好运。