LUIS——理解任何人的名字
LUIS - understand any person name
我们正在 LUIS / Microsoft Bot framework 上构建产品,我们的疑问之一是对人名的理解。只需在我们的网站上注册,任何人都可以使用该产品。这意味着任何注册的公司都可以拥有任意数量的任意姓名的员工。
据我们了解,用户实体无法识别所有名称。我们已经创建了一个短语列表,但据我们所知,短语列表是有限制的(10K 甚至 100K),世界上的名字永远不会有限制。我们考虑的另一种方式是不要用话语来训练实体。但是,如果我们有 100 个客户,每个客户有 1000 个用户,那么在这种情况下,话语将不是一个好主意。
我看不出有任何其他方法可以处理这种情况。可能我在这里遗漏了什么?任何人都遇到过类似的问题以及如何处理?
最坏的情况是为每个客户创建一个单独的 LUIS 实例,但这确实是一项艰巨的任务,只是因为我们无法处理名称。
您可能已经知道,一个人的名字可以是任何字面意思:例如动物、汽车、月份或颜色。因此,没有任何明确的方法可以将某物识别为名称。最接近的方法是通过文本分析词性,然后进行猜测或与现有列表进行比较。 LUIS 或任何其他 NLP 工具不太可能对此提供帮助。这是一种可能效果更好的方法。尝试类似 Microsoft 的文本分析认知服务,使用 POST 到关键短语端点,如下所示:
https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases
和正文:
{
"documents": [
{
"language": "en-us",
"id": "myid",
"text": "Please book a flight for John Smith at 2:30pm on Wednesday."
}
]
}
那个returns:
{
"languageDetection": {
"documents": [
{
"id": "e4263091-2d54-4ab7-b660-d2b393c4a889",
"detectedLanguages": [
{
"name": "English",
"iso6391Name": "en",
"score": 1.0
}
]
}
],
"errors": []
},
"keyPhrases": {
"documents": [
{
"id": "e4263091-2d54-4ab7-b660-d2b393c4a889",
"keyPhrases": [
"John Smith",
"flight"
]
}
],
"errors": []
},
"sentiment": {
"documents": [
{
"id": "e4263091-2d54-4ab7-b660-d2b393c4a889",
"score": 0.5
}
],
"errors": []
}
}
请注意,您得到 "John Smith" 和 "flight" 作为关键短语。 "flight" 绝对不是名称,但 "John Smith" 可能是,让您更好地了解名称是什么。此外,如果您有一个客户名称数据库,您可以将该值与客户名称进行比较,无论是准确的还是 soundex,以增加您对名称的信心。
有时,服务不会给您 100% 的答复,您必须创造性地解决问题。请参阅 Text Analytics API docs 了解更多信息。
我已经向我所在地区的几个 MS 人员问过这个问题,但 LUIS 目前似乎无法识别姓名。
它不如 NLP,它不能处理这样的事情:(
我发现 wit.ai(迄今为止最好的)在识别名字方面,IBM Watson 在某种程度上也很好。让我们看看他们将来会如何,但现在我切换到 https://wit.ai
我们正在 LUIS / Microsoft Bot framework 上构建产品,我们的疑问之一是对人名的理解。只需在我们的网站上注册,任何人都可以使用该产品。这意味着任何注册的公司都可以拥有任意数量的任意姓名的员工。
据我们了解,用户实体无法识别所有名称。我们已经创建了一个短语列表,但据我们所知,短语列表是有限制的(10K 甚至 100K),世界上的名字永远不会有限制。我们考虑的另一种方式是不要用话语来训练实体。但是,如果我们有 100 个客户,每个客户有 1000 个用户,那么在这种情况下,话语将不是一个好主意。
我看不出有任何其他方法可以处理这种情况。可能我在这里遗漏了什么?任何人都遇到过类似的问题以及如何处理?
最坏的情况是为每个客户创建一个单独的 LUIS 实例,但这确实是一项艰巨的任务,只是因为我们无法处理名称。
您可能已经知道,一个人的名字可以是任何字面意思:例如动物、汽车、月份或颜色。因此,没有任何明确的方法可以将某物识别为名称。最接近的方法是通过文本分析词性,然后进行猜测或与现有列表进行比较。 LUIS 或任何其他 NLP 工具不太可能对此提供帮助。这是一种可能效果更好的方法。尝试类似 Microsoft 的文本分析认知服务,使用 POST 到关键短语端点,如下所示:
https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases
和正文:
{
"documents": [
{
"language": "en-us",
"id": "myid",
"text": "Please book a flight for John Smith at 2:30pm on Wednesday."
}
]
}
那个returns:
{
"languageDetection": {
"documents": [
{
"id": "e4263091-2d54-4ab7-b660-d2b393c4a889",
"detectedLanguages": [
{
"name": "English",
"iso6391Name": "en",
"score": 1.0
}
]
}
],
"errors": []
},
"keyPhrases": {
"documents": [
{
"id": "e4263091-2d54-4ab7-b660-d2b393c4a889",
"keyPhrases": [
"John Smith",
"flight"
]
}
],
"errors": []
},
"sentiment": {
"documents": [
{
"id": "e4263091-2d54-4ab7-b660-d2b393c4a889",
"score": 0.5
}
],
"errors": []
}
}
请注意,您得到 "John Smith" 和 "flight" 作为关键短语。 "flight" 绝对不是名称,但 "John Smith" 可能是,让您更好地了解名称是什么。此外,如果您有一个客户名称数据库,您可以将该值与客户名称进行比较,无论是准确的还是 soundex,以增加您对名称的信心。
有时,服务不会给您 100% 的答复,您必须创造性地解决问题。请参阅 Text Analytics API docs 了解更多信息。
我已经向我所在地区的几个 MS 人员问过这个问题,但 LUIS 目前似乎无法识别姓名。
它不如 NLP,它不能处理这样的事情:(
我发现 wit.ai(迄今为止最好的)在识别名字方面,IBM Watson 在某种程度上也很好。让我们看看他们将来会如何,但现在我切换到 https://wit.ai