Google NL的位置实体识别问题

时间:2016-10-07 02:47:11

标签: google-cloud-nl

我一直在玩Google Natural Language API,特别是使用位置识别从HN的"Who Is Hiring" page中提取位置。如果我传递像

这样的文字
  

Blockai |旧金山,加利福尼亚州| CV / ML和前端工程师 -   https://blockai.com

(来自https://news.ycombinator.com/item?id=12631335

然后NL API返回以下实体: enter image description here

问题是“ML”和“CV”被识别为位置,但它们实际上分别代表“机器学习”和“计算机视觉”。我想算法得出的结论是CV / ML是位置,因为它们在文本中靠近其他位置(旧金山,加利福尼亚州)。

我想知道如何识别API输出中的这些“假”位置?我认为可能使用“Salience”参数会有所帮助,但我不确定哪种经验法则是合适的..我甚至发现API有时会响应Salience值大于1,尽管文档说这些值是“在[0,1.0]范围内。”,fe:

public class register extends AppCompatActivity {

  private EditText Name;
  private int Phone;
  private EditText etEmailUser;
  private EditText Address;
  private EditText txtPassword;
  private FirebaseAuth firebaseAuth;@
  Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);
    Name = (EditText) findViewById(R.id.etName);
    Phone = (int) findViewById(R.id.etPhone);
    etEmailUser = (EditText) findViewById(R.id.etEmailUser);
    etAddress = (EditText) findViewById(R.id.etAddress);
    firebaseAuth = FirebaseAuth.getInstance();
}

},

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

有时,底层算法消除实体歧义非常棘手,尤其是。当没有足够的背景时。突显对此没有帮助,因为突显显示了一个实体的核心,无论其类型如何。在这种特殊情况下,您可以使用提供的元数据(例如维基百科网址)来进一步评估该实体是否确实是一个位置。