1
我有一個詞典文件夾,其中存儲了諸如「憤怒」,「護理」等字典列表。 例如,我在Facebook上發佈了一篇文章,內容是「我很沮喪, ,非常有害。「 在我的憤怒詞典中,我有3個字悶悶不樂,脾氣暴躁。 當我運行我的字數統計程序時,它似乎無法準確檢測到所有單詞。更具體地說,我的字數統計字典會檢測到曾經發生過一次悶悶不樂的事情,但是沒有任何困難。單詞詞典沒有得到所有單詞
這個問題是由我的正則表達式引起的嗎?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace empTRUST
{
class FBWordCount
{
public Dictionary<string, int> countWordsInStatus(string status, string[] dictArray)
{
var words = new Dictionary<string, int>(StringComparer.CurrentCultureIgnoreCase); // local word dictionary is created here
foreach (var dictEntry in dictArray)
{
var wordPattern = new Regex(@"\w+");
string smallDictEntry = dictEntry.ToLower();
foreach (Match match in wordPattern.Matches(status))
{
if (match.ToString() == smallDictEntry)
{
int currentCount = 0;
words.TryGetValue(match.Value, out currentCount);
currentCount++;
words[match.Value] = currentCount; // local word dictionary adds new word count
}
}
}
return words; // returns local word dictionary to receiving end
}
}
}
我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
@SamuelLee我很高興看到你已經開始專注於逐步解決問題。只是一個快速的評論(據我所知,你是這樣做的),請記住,字典適合小尺寸,但消耗太多的內存來處理所有你想要的。您將不得不依靠數據庫或一組臨時文件來存儲所有類別。例如,你可以通過迭代地調用這個函數來適應p.s.w.g給出的答案:for循環遍歷所有列表(存儲在數據庫或文件中)並將所需的單詞作爲參數傳遞。 – varocarbas
@SamuelLee我最後一個建議(空間不足)的例子:foreach(所有列表中的curListWords){tempDict = countWordsInStatus(inputString,curListWords)} - >每個tempDict將存儲給定匹配的相應類別。正如你所看到的,這會引起數量不斷增加的詞典(除了上述的記憶問題),因此你可能不得不採取不同的方法。我確信,通過這種方式,您將學習並最大限度地提高系統的效率。這是正確的方式。祝你好運! – varocarbas