텍스트 파일이 문자열 변수로 저장되어 있습니다. 텍스트 파일은 소문자 단어와 공백 만 포함하도록 처리됩니다. 자, 정적 인 사전을 가지고 있는데, 이는 특정 단어의 목록 일 뿐이며, 텍스트 파일 내에서 사전의 각 단어의 빈도를 세고 싶습니다. 예를 들면 다음과 같습니다.텍스트 파일의 특정 단어의 빈도 계산
Text file:
i love love vb development although i m a total newbie
Dictionary:
love, development, fire, stone
출력은 사전 단어와 해당 개수를 모두 나열한 것입니다. 코딩이 단순 해지면 텍스트에 나타난 사전 단어 만 나열 할 수 있습니다.
===========
WORD, COUNT
love, 2
development, 1
fire, 0
stone, 0
============
정규식 (예를 들어, "\ + w") 나는 모든 단어 일치를 얻을 수를 사용하여
,하지만 난 방법을 사전에 또한 카운트를 얻는 단서가 없다, 그래서 나는 갇혔어요. 사전은 상당히 커서 (~ 10 만 단어) 텍스트 파일이 작지 않기 때문에 효율성이 중요합니다 (각각 ~ 200kb).
모든 종류의 도움에 감사드립니다. 이제
Dictionary<string, int> count =
theString.Split(' ')
.GroupBy(s => s)
.ToDictionary(g => g.Key, g => g.Count());
그냥 단어가 사전에 존재하는지 확인하고 계산하는 경우를 표시 할 수 있습니다 :
어쩌면 같은 뭔가를 문자열을'Array' 또는'List'로 분할 한 다음리스트를 반복/처리합니까? –
당신은 이것을 C#과 vb.net으로 태그했습니다. 무엇 이니? –
FWIW, 여기에 정규식을 사용하여 단어를 일치시키는 것은 좋은 생각이 아닙니다. 특히 입력 내용이 깨끗한 것 (소문자 및 공백 만 사용)을 지정 했으므로 특히 좋습니다. 대신 String.Split을 사용하십시오. 그 외에도 이것은 사소한 문제입니다. .NET 문서에서 사전을 찾으십시오. –