google-cloud-platform - 如何使用 Google NLP 在单个注释中提取多个标签文本项
问题描述
我使用 Google NLP 实体提取创建了数据集,并上传了输入数据(训练、测试、验证 jsonl 文件),例如将存储在 Google 存储桶中的 NLP 格式。
示例注释:
{
"annotations": [{
"text_extraction": {
"text_segment": {
"end_offset": 10,
"start_offset": 0
}
},
"display_name": "Name"
}],
"text_snippet": {
"content": "JJ's Pizza\n "
}
} {
"annotations": [{
"text_extraction": {
"text_segment": {
"end_offset": 9,
"start_offset": 0
}
},
"display_name": "City"
}],
"text_snippet": {
"content": "San Francisco\n "
}
}
这是将标签预测为“名称”、“城市”和“州”的输入文本
加利福尼亚旧金山最佳 JJ's Pizza
结果在以下屏幕截图中,
我希望预测的结果如下,
名称:JJ's Pizza 城市:旧金山 州:CA
解决方案
根据您提供的示例注释,您将整体设置text_snippet
为一个name
(或您要提取的任何字段)。
这可能会混淆模型,使其无法理解所有文本都是该实体。
最好有类似于文档中的训练数据。在那里,有一大块文本,然后我们注释我们想要从那里提取的实体。
例如,假设从这些文本片段中,我告诉模型草书部分是一个名为 的实体a
,而粗体部分是一个名为 的实体b
:
- 锦江比萨
- LL墨西哥卷饼
- 烤肉串MM
- 舒氏NN
- 旧金山
- 纽约
- 华盛顿
- 洛杉矶
然后,当模型读取Best JJ Pizza时,它认为 all 是一个单一的实体(我们用这个假设训练了模型),它只会选择它最匹配的那个(在这种情况下,它可能会说它是一个a
实体)。
但是,如果我提供以下文本示例(也注释为草书是实体a
,粗体是实体b
):
- 旧金山最好的披萨店是JJ Pizza。
- 如果您想享受奢华的体验,请不要忘记在纽约附近参观LL Burritos。
- 我曾经去过Kebab MM ,但华盛顿有更好的选择。
- 你可以在洛杉矶找到Shushi NN
你可以看到你是如何训练模型在一段文本中找到实体的,它会尝试根据上下文提取它们。
训练模型的重要部分是提供尽可能与真实数据相似的训练数据。
在您提供的示例中,如果您的实际场景中的数据将采用 format <ADJECTIVE> <NAME> <CITY>
,那么您的训练数据应该具有相同的格式:
{
"annotations": [{
"text_extraction": {
"text_segment": {
"end_offset": 16,
"start_offset": 6
}
},
"display_name": "Name"
},
{
"text_extraction": {
"text_segment": {
"end_offset": 30,
"start_offset": 21
}
},
"display_name": "City"
}],
"text_snippet": {
"content": "Worst JJ's Pizza in San Francisco\n "
}
}
请注意,自然语言机器学习模型的重点是处理自然语言。如果您的输入看起来像那样相似/简单/简短,那么可能不值得走 ML 路线。一个简单的正则表达式就足够了。如果没有自然语言部分,将很难正确训练模型。初学者指南中的更多详细信息。
推荐阅读
- c# - C#/UWP 中的屏幕截图
- javascript - 在 react 中更改 react-calendar 的日期格式
- spring-data-elasticsearch - spring data Elasticsearch 动态映射
- php - 在 AWS 中设置 Web 服务器数据库 - 无法理解指令的 dbinfo.inc 文件部分
- reactjs - 从另一个文件加载 React 组件
- keras - 当我添加 step_per_epoch 且 epoch=1 时,训练 ETA 为 5 小时
- flutter - 由于版本失败,获取包无法正常工作
- javascript - Laravel 7:如何在依赖下拉列表中获取名称而不是 id?
- javascript - reCaptcha v3 不执行
- java - 如何使用 JNA 访问此对话框“选择文件夹”