我的任务是对文本(800MB txt 文件)进行简单的语义分析。对于小文件,一切都进行得很快。我逐行阅读了这个文件和那些工作。文件读取需要 9s。但是,一旦您开始分析并将单词添加到字典中并将它们的位置存储在文本处理中,就会花费太长时间。
你能告诉我更好的变化或解决问题的更好方法吗?在处理文本和程序的语义分析问题时,我会提出任何意见。你的。
public List<string> SplitWords(string s)
{
s = s.ToLower();
arrayWords = Regex.Split(s, @"\W+");
listWords = arrayWords.OfType<string>().ToList();
for (int i = 0; i < listWords.Count; i++)
{
if (Array.BinarySearch(stopwords, listWords[i]) >= 0 || listWords[i].Length < 2)
{
listWords.RemoveAt(i);
i--;
}
}
return listWords;
}
分隔单词的代码
public void AddToDictonary(List<string> arrayWords)
{
for (int i = 0; i < arrayWords.Count; i++)
{
if (!dictonary.ContainsKey(arrayWords[i]))
{
dictonary.Add(arrayWords[i], new List<int>() { i });
}
else
{
dictonary[arrayWords[i]].Add(i);
}
}
}
添加到字典的代码。