我有两个字符串数组,即。
string[] text = {"Paragraph 1 containing long text of ten to 20 lines", "Paragraph 2 containing long text of ten to 20 lines", "Paragraph 3 containing long text of ten to 20 lines",.....};
和另一组停用词,即
string[] stop_words = File.ReadAllLines(@"C:\stopWords.txt");
string[] text
数组包含文本段落,string[] stop_words
数组包含要从存储的所有文本中删除的停用词
string[] text
数组
如何使用c#删除停用词。代码建议将受到高度赞赏。
由于
答案 0 :(得分:0)
试试这样:
string[] result = text.Except(stop_words).ToArray();
或者您可以尝试使用for循环
string[] stop_word = new string[] { "please", "try", "something" };
string str = "Please try something by yourself before asking";
foreach (string word in stop_word )
{
str = str.Replace(word, "");
}
答案 1 :(得分:0)
让我解释一下这个流程:
1)我必须遍历input_Texts字符串array..fine。
2)在循环中我根据空格分割段落,即('')以便我得到所有单词。
3)然后我找到它们和stopWords之间的所有相交/匹配单词。
4)然后取出除匹配词之外的所有词语。
5)再次使用空格加入它们以从单词(没有停止词)创建文本,然后再将它放回到同一个地方。
for(int i=0;i<input_Texts.Length;i++)
{
input_Texts[i]=string.Join(" ", input_Texts[i].Split(' ').Except(input_Texts[i].Split(' ').Intersect(stopWords)));
}
你可以关注这个吗?