如何在C#中执行标记化和停用词删除?

时间:2011-09-30 15:32:07

标签: c# tokenize stop-words

基本上我想对段落中的每个单词进行标记,然后执行停用词删除。这将是我的算法的预处理数据。

3 个答案:

答案 0 :(得分:2)

您可以删除所有标点符号并将字符串拆分为空格。

string s = "This is, a sentence.";
s = s.Replace(",","").Replace(".");
string words[] = s.split(" ");

答案 1 :(得分:0)

如果从文本文件或任何文本中读取,您可以:

<div class="head">
    <div id="logo">
      <a href="#"><img src="https://images.mint.com/web-client/images/mint_logo.png" alt="Mint logo"></a>
    </div>
    <div id="tabs">
      <ul>
        <li>Sign up</li>
        <li>Log in</li>
      </ul>
    </div>
  </div>

<div style="margin-right: auto; margin-left: auto; overflow: hidden; clear: both; width: 334px ! important;">


  <div class="bod1">
    <h1></h1>


  </div>
  <div class="bod2" style="float:left;">

  </div>
</div>
  <div class="foot" style="clear:both;">

  </div>
</div>
  <div class="foot">

  </div>

然后您可以将停用词转换为词典并将文档保存到列表

  char[] dele = { ' ', ',', '.', '\t', ';', '#', '!' };
  List<string> allLinesText = File.ReadAllText(text file).Split(dele).ToList();

答案 2 :(得分:0)

您可以在常量或db中存储所有分隔符号和停用词:

   public static readonly char[] WordsSeparators = {
        ' ', '\t', '\n', '\n', '\r', '\u0085'
    };

  public static readonly string[] StopWords = {
        "stop", "word", "is", "here"
    };

删除所有的插页。拆分文本和过滤器:

var words = new List<string>();
var stopWords = new HashSet<string>(TextOperationConstants.StopWords);
foreach (var term in text.Split(TextOperationConstants.WordsSeparators))
{
      if (String.IsNullOrWhiteSpace(term)) continue;
      if (stopWords.Contains(term)) continue;
      words .Add(term);
}