私は文字列のリストを持っています。私はリストの中で最も反復された言葉を抽出したい。例えばどのように文字列のリストで最も繰り返される単語を取得するには?
:
List<string> mylist=new List<string>();
mylist.Add("book is good ");
mylist.Add("i like flowers ");
mylist.Add("i reading book");
私は本ない私を抽出します。 user3185569 @
はレスポンスに次のコード
List<string> mylist = new List<string>();
mylist.Add("book is good ");
mylist.Add("i like flowers ");
mylist.Add("i reading book");
var mostRepeatedWord = mylist.SelectMany(x => x.Split(new [] { " " },
StringSplitOptions.RemoveEmptyEntries))
.GroupBy(x => x).OrderByDescending(x => x.Count())
.Select(x => x.Key).FirstOrDefault();
を言った。しかし、このコードは、
にし、など私は私のリストから5つの意味のある単語を抽出したいような言葉が含まれている一つの単語を抽出しました。私は、最初に
static List<string> notWord = new List<string>();
public static void fillList()
{
XmlDocument doc = new XmlDocument();
doc.Load(@"XMLDic.xml");
foreach (XmlNode node in doc.DocumentElement.ChildNodes)
{
notWord.Add(node.InnerText); //or loop through its children as well
}
}
:私はそれを修正しようとしたので、私はにのような言葉が含まれている私のプロジェクト、にXML辞書を追加し、など をし、このように、この辞書のリストを埋めますリストからこれらの単語を削除した後、5段階のループでmostRepeatedWord
を抽出し、新しいリストに保存します。私はリストからmostRepeatedWord
を取り除き、このプロセスを5回以上繰り返します。
public static List<string> finde(List<string> list)
{
List<string> newlist = new List<string>();
fillList();
delStr(list, "", true);
for (int i = 0; i < 6; i++)
{
var mostRepeatedWord = list.SelectMany(x => x.Split(new[] { " " },
StringSplitOptions.RemoveEmptyEntries))
.GroupBy(x => x).OrderByDescending(x => x.Count())
.Select(x => x.Key).FirstOrDefault();
if (mostRepeatedWord!="")
newlist.Add(mostRepeatedWord);
delStr(list, mostRepeatedWord, false);
}
return newlist;
}
listメソッドの削除の言葉を次のとおりです。私が知りたい
public static List<string> delStr(List<string> list, string str, bool t)
{
if (t)
{
string s;
for (int i = 0; i < list.Count; i++)
{
s = list[i];
foreach (var i1 in notWord)
{
s = s.Replace(i1, "");
}
list[i] = s;
}
}
else
{
string s;
for (int i = 0; i < list.Count; i++)
{
s = list[i];
s = s.Replace(str, "");
list[i] = s;
}
}
return list;
}
それが正しいか、それを行うには良い方法はありますか?
コードを投稿する必要があります。 – Kosch
何を試しましたか?あなたの問題を解決する努力をしていない場合、あなたの質問はちょうど_gimme私teh codez_そしてこれはSOユーザーが何をすべきかではありません – Steve