有没有办法根据找到的上下文获取特定实体?例如:
今天的温度是35°C。
将利培酮片剂存放在20°C。
两者都在谈论温度。对于第一句话,我希望温度是“WeatherTemperature”实体。在第二句话中,我希望温度为“DrugTemperature”。我可以使用什么模型来训练这种行为?
有没有办法根据找到的上下文获取特定实体?例如:
今天的温度是35°C。
将利培酮片剂存放在20°C。
两者都在谈论温度。对于第一句话,我希望温度是“WeatherTemperature”实体。在第二句话中,我希望温度为“DrugTemperature”。我可以使用什么模型来训练这种行为?
使用Wolfram 语言,您可以使用TextCases或TextContents来自文本分析指南。这些都是实验性功能,因此在未来版本中最终确定之前可能会有所改变。两者都有TargetDevice选项,因此您可以在一个或多个 GPU 上运行它们(如果有的话)。
请参阅文本内容类型指南,了解这些功能已在其上进行培训的实体列表。
我认为这TextContents是对多种情况的优化调用,TextCases所以我只会TextContents在下面使用。
用于TextContents定位句子中所有经过训练的实体。
res1 = TextContents["The temperature today is 35°C.", TargetDevice -> "GPU"]
res2 = TextContents["Store risperidone tablet at 20°C.", TargetDevice -> "GPU"]
TextContents返回一个Dataset可以Query针对特定情况 'ed 的对象。
例如对于您的“DrugTemperature”
res2[ContainsAll[{"Chemical", "Quantity"}], "Type"]
True
和数量单位
res2[
SelectFirst[#["Type"] == "Quantity" &],
"String" /* SemanticInterpretation /* QuantityUnit]
"DegreesCelsius"
Entityof 类型具有丰富的"Chemical"属性,因此可以在需要时获取附加信息。例如,
res2[
SelectFirst[#["Type"] == "Chemical" &],
"String" /* Interpreter["Chemical"] /* (#["MoleculePlot"] &)]
希望这可以帮助。