나는 약 1500 개의 문서 모음을 가지고 있습니다. 각 문서를 파싱하고 토큰을 추출합니다. 이러한 토큰은 해시 맵 (키)으로 저장되고 컬렉션에서 발생하는 총 횟수 (즉, 빈도)는 값으로 저장됩니다.Java 논리에서 역 색인 작성
역 색인을 만들기 위해 이것을 확장해야합니다. 즉, 용어 (키) | 발생하는 문서의 수 -> DocNo | 해당 문서의 빈도. 부여 됨으로써,
Term DocFreq DocNum TermFreq
data 3 1 12
23 31
100 17
customer 2 22 43
19 2
현재, 나는
hashmap<string,integer>
for(each document)
{
extract line
for(each line)
{
extract word
for(each word)
{
perform some operations
get value for word from hashmap and increment by one
}
}
}
이 코드에 구축해야, 자바에서 다음 있습니다. 역 색인을 구현하는 좋은 방법을 생각할 수는 없습니다. 지금까지 저는 2D 배열을 가치있게 생각했습니다. 따라서 용어가 핵심이며 값 (즉, 2D 배열)은 docId 및 termFreq를 저장합니다.
제 논리가 정확한지 알려주세요.
나는 당신이하고 싶은 것을 이해하지 못한다. DocFreq, DocNum 및 TermFreq는 무엇입니까? 역 색인의 키와 값은 무엇이되어야합니까? –
문서 모음이 있습니다. 각 문서를 분석하고 각 단어를 추출합니다. 이제 각각의 단어에 대해 다음 정보를 저장/계산해야합니다 : 용어 (단어), DocFreq (이 특정 단어가 나오는 문서의 수) -> DocNum 및 TermFreq (문서 ID 및 발생 빈도 그 문서에서). 예를 들어, '데이터'라는 단어는 3 (DocFreq) 문서에서 발생합니다. 이 3 개의 문서는 1,2,3,100 (DocNum)이며 DocNum 1의 'data'는 12 회 (TermFreq) 발생합니다. DocNum 23에서는 '데이터'가 31 회 발생하고 DocNum 100에서는 '데이터'가 17 회 발생합니다. – aquafatz