Как выполнить токенизацию и удаление стоп-слов в C #? - PullRequest
0 голосов
/ 30 сентября 2011

По сути, я хочу разбить каждое слово абзаца, а затем выполнить удаление стоп-слов. Какие будут предварительно обработанные данные для моего алгоритма.

Ответы [ 3 ]

2 голосов
/ 30 сентября 2011

Вы можете удалить все знаки пунктуации и разбить строку на пробелы.

string s = "This is, a sentence.";
s = s.Replace(",","").Replace(".");
string words[] = s.split(" ");
0 голосов
/ 23 января 2017

Вы можете хранить все символы разделения и стоп-слова в константах или в дБ:

   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);
}
0 голосов
/ 23 января 2017

если вы читаете текстовый файл или любой другой текст, который вы можете:

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

, тогда вы можете преобразовать стоп-слова в словарь и сохранить документ в списке, затем

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