我是NLP的新手,我想知道它是否适合我们的业务问题。
我与外科手术管理系统合作,该系统记录患者手术的详细信息。手术后患者将有一个手术后的目的地,通常是医院的病房。问题是这是在非结构化的自由文本字段中捕获的,管理员可以在其中输入与手术有关的任何内容。此时,让供应商将其添加为数据库中的新字段不是一种选择。
我需要开发一些东西(最好是在python中)来尝试从这个自由文本中识别患者术后的位置。结果如下:'Ward 1'。一旦确定了这一点,我们就可以在结构化数据中查找有关Ward 1的其他详细信息,例如,这是否是患者的合适目的地。
自由文本的例子:
“接受WD1后操作”
“康复病房然后手术后病房1”
“术后MRI检查然后接受WD1”
“在程序之前接纳Ward1。要确认的术后目的地”
解决方案需要处理描述手术后目的地的各种不同方式,并且写入手术后目的地的变化(例如Ward 1,WD1,W1等)。
我还没有开始编码,但我最初的方法是使用正则表达式来查找与后期目的地匹配的文本,但我不想无休止地编码不同的变体。所以我认为这可能是使用NLTK的NLP的问题?
有没有人对如何处理此问题有任何建议?任何建议的工具,技术,教程,以前的经验等。非常感谢。
答案 0 :(得分:0)
首先,我不经常使用上面提到的自由文本,所以我的答案可能不是最好的。如果外科医生可以完全自由地输入任何他们想要的内容,那么您将需要接受将会出现无法处理的情况(因为他们输入了一些无法修复的东西)。正则表达式是强大的,但从长远来看,它可能是处理/维护的噩梦。 NLP / NLTK是一个庞大的,非常强大的库,可能需要太多的学习才能获得很少的收益。
我的方法是保持简单。我假设您可以访问python中的文本,我会在空格上分割文本,这样您就可以得到单个单词的列表,然后扫描每个单词以获取“已知”或“已接受”的术语,如WD1,WARD1等。当然,这并不完全是直截了当的;你会有“WARD”“1”的情况,但有一些应该可以检测到的胶水代码。
我不认为你的目标应该是检测100%的所有病例(不管听起来多么奇怪)。仅涵盖大多数情况,这将更有可能为您提供可维护/可扩展的代码,并且仍然可以使您的流程自动化。
祝你好运。