我应该从saing开始:我不擅长编程,但它非常有趣! 我正在研究类似Siri的程序,我正在尝试实现维基百科功能。要做到这一点,我问一个问题,例如:告诉我关于超人C#从字符串中提取一个字
我需要提取单词超人或任何其他随机的字,有人可能会问这个字符串。这并不难,但真正的问题始于有人问:你能否告诉我有关超人,我仍然想要提取超人这个词。
这是之前我曾尝试一个例子:
if ((c.Contains("tell me about")) || (c.Contains("Tell me about")))
{
string query = c;
var part = query.Split('t').Last(); //cant search for words containing the letter t like artificial intelligence
string url = ("http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString=" + part + "&MaxHits=1");
XmlReader reader = XmlReader.Create(url);
while (reader.Read())
switch (reader.Name.ToString())
{
case "Description":
sp(reader.ReadString());
break;
}
}
我几乎能解决这个问题,好像这个解决方案运作时间的80%左右。不过,这是朝着正确方向迈出的一步。
if ((c.Contains("tell me about")) || (c.Contains("Tell me about")))
{
string query = c;
string[] lines = Regex.Split(query, "about ");
foreach (string line in lines)
{
string url = ("http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString=" + line + "&MaxHits=1");
XmlReader reader = XmlReader.Create(url);
while (reader.Read())
switch (reader.Name.ToString())
{
case "Description":
sp(reader.ReadString());
break;
}
}
有没有更好/更简单的方法来做到这一点?
你可以使用[parsey mcparseface](http://thenextweb.com/dd/2016/05/12/google-just-open-sourced-something-called-parsey-mcparseface-change-ai-forever/#格列夫)!语言学认知也不是一件容易的事。 – Tdorno
制作一个字典,其中包含要解释的词语解释对。总之,优先处理多个匹配词的出现。那么对于你想要的简单情况,你或多或少地完成了.. – Ian