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

如何在C#中执行标记化和停止字删除?,c#,tokenize,stop-words,C#,Tokenize,Stop Words,基本上,我想标记段落中的每个单词,然后执行停止词删除。这将是我的算法的预处理数据。您可以删除所有标点符号并拆分字符串以获得空白 string s = "This is, a sentence."; s = s.Replace(",","").Replace("."); string words[] = s.split(" "); 如果从文本文件或任何文本中读取,您可以: char[] dele = { ' ', ',', '.', '\t', ';', '#', '!' }; List

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

您可以删除所有标点符号并拆分字符串以获得空白

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

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

  char[] dele = { ' ', ',', '.', '\t', ';', '#', '!' };
  List<string> allLinesText = File.ReadAllText(text file).Split(dele).ToList();
char[]dele={',',',',','\t',';','#','!';
List allLinesText=File.ReadAllText(文本文件).Split(dele.ToList();
然后,您可以将停止词转换为字典,然后将文档保存到列表中

  foreach (KeyValuePair<string, string> word in StopWords)
       {
          if (list.contain(word.key))
               list.RemovAll(s=>s==word.key);
       }
foreach(StopWords中的KeyValuePair字)
{
if(list.contain(word.key))
list.RemovAll(s=>s==word.key);
}

您可以将所有分隔符号和停止字存储在常量或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);
}
var words=newlist();
var stopWords=新哈希集(TextOperationConstants.stopWords);
foreach(text.Split(TextOperationConstants.WordsParators)中的变量项)
{
如果(String.IsNullOrWhiteSpace(term))继续;
如果(stopWords.Contains(term))继续;
添加(术语);
}

你试过什么了吗?你有权使用Spit(“”),但我需要保留标点符号。如果你需要的话。。。只是不要删除它们:)+1。这可能是对所问问题的最好回答。这个主题本身就足够复杂(除非是家庭作业),因为不是所有语言都使用空格作为分隔符。。。提供一些适当的术语/概念,以便开始搜索。