我一直在玩Google Natural Language API,特别是使用位置识别从HN的"Who Is Hiring" page中提取位置。如果我传递像
这样的文字Blockai |旧金山,加利福尼亚州| CV / ML和前端工程师 - https://blockai.com“
(来自https://news.ycombinator.com/item?id=12631335)
问题是“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();
}
},
非常感谢任何帮助!
答案 0 :(得分:1)
有时,底层算法消除实体歧义非常棘手,尤其是。当没有足够的背景时。突显对此没有帮助,因为突显显示了一个实体的核心,无论其类型如何。在这种特殊情况下,您可以使用提供的元数据(例如维基百科网址)来进一步评估该实体是否确实是一个位置。