使用C#获取句子中的特征

时间:2016-06-07 11:56:47

标签: c# twitter

我正在使用C#,我从twitter上发了推文 现在接下来我要做的是从推文功能中提取功能,如:

  1. 功能A(统计功能):推文消息中的字数,以及推文中查询字的位置。
  2. 功能B(关键字功能):推文中的字词。
  3. 功能C(单词上下文功能):查询单词前后的单词。
  4. 例如:功能A:推文中有7个字,查询字是第五个特征B:我,上,中,日本,右边,现在特征C:日本,右边

    请建议我提取这些功能的一些好方法。因为我没有得到正确的方法来提取功能

1 个答案:

答案 0 :(得分:0)

所有这些都是非常基本的字符串操作,假设您从它们收到一个字符串,那么这些操作就不会特别需要Twitter。

  
      
  1. 功能A(统计功能):推文消息中的字数和推文中单词的位置
  2.   

您可以使用String.Split()方法将每个单词用空格分隔,然后计算结果中可用元素的数量:

// This will return the number of words in your tweet
var wordCount = tweet.Split(' ').Length;

// If you wanted the position of a word, you could just use the IndexOf() method
var queryWordPosition = tweet.Split(' ').IndexOf(query);
  
      
  1. 功能B(关键字功能):推文中的字词。
  2.   

同样,String.Split()方法发挥作用,并将每个单词存储在数组中:

// This will store each of your words in an array
var words = tweet.Split(' ');
  
      
  1. 功能C(单词上下文功能):查询单词之前和之后的单词。
  2.   

您可以再次使用上一种方法通过String.Split()将每个值存储在数组中,并使用IndexOf()方法查找您的特定查询字,然后检查上一个和下一个元素。阵列:

public string[] GetContext(string tweet, string query)
{
      if(tweet == null || !tweet.Contains(query))
      {
          // Your word was not found (or your tweet was null)
          return new string[] {};
      }

      var words = tweet.Split(' ');
      // Find the location of the word
      var queryIndex = words.IndexOf(query);

      // Return the left and right values accordingly
      return new string[]{ queryIndex > 0 ? words[queryIndex - 1] : null, queryIndex < words.Length ? words[queryIndex + 1] : null };
}