2014-11-23 2 views
0

자연 언어로 작성된 쿼리가 주어지면 해당 쿼리에서 키워드를 추출하여 IR 시스템에 제출하는 자연 언어 쿼리 전처리 모듈을 구현하려고합니다.자연 언어 쿼리 전처리

처음에는 용어의 TF-IDF 값을 계산하고 이러한 값을 단일 단어의 중요성을 평가하는 데 사용하는 교육 세트를 사용하는 방법에 대해 생각했습니다. 그러나 두 번째 생각에이 시나리오에서는이 의미가 없습니다. 훈련 컬렉션 만 있지만 IR 데이터에 대한 색인을 생성 할 수는 없습니다. 그러한 추정에 IDF 값만 사용하는 것이 합리적일까요? 아니면 다른 가중 접근법일까요?

이 문제를 해결하는 방법을 제안 해주세요. 일반적으로 읽은 NLP 처리에 관한 기사는 교육 및 테스트 데이터 세트에 대해 이야기합니다. 그러나 쿼리 및 교육 데이터 만 있으면 어떻게됩니까?

+0

"키워드"와 "정보 검색 시스템에 제출"이란 정확히 무엇을 의미합니까? – oopcode

+0

Google과 같은 정보 검색 시스템에서 검색어가 결과를 반환하면 자연어로 작성된 검색어에서 가장 중요한 단어를 추출하여이 검색어를 순서대로이 검색어 시스템의 새로운 검색어로 사용하고 싶습니다. 더 나은 결과를 얻으려면 ... – Smajl

답변

1

tf-idf (대문자로 표기하지 않음, fyi)는 좋은 선택입니다. 당신의 직감은 여기에 맞습니다. 그러나 훈련 세트에서만 tf-idf를 계산하지는 않습니다. 왜? tf와 idf가 의미하는 바를 실제로 이해해야합니다.

tf (용어 빈도)는 평가할 문서에 용어가 표시되는지 여부를 나타내는 통계입니다. 그것을 계산하는 가장 간단한 방법은 단순히 부울 값, 즉 용어가 문서에 있으면 1입니다.

idf (반대 문서 빈도)는 용어가 임의의 문서에 나타나는 가능성을 측정합니다. 가장 자주 (N/문서 일치의 수)의 로그로 계산됩니다.

이제 IR 시스템에서 색인을 생성 할 문서 각각에 대해 tf가 계산됩니다 (액세스 권한이없는 경우 소스가없는 IR이 있기 때문에 훨씬 크고 극복 할 수없는 문제가 있습니다. 진리는 모순이다.) 이상적으로, idf는 전체 데이터 집합 (즉, 인덱싱하는 모든 문서)에 대해 계산되지만, 엄청나게 비싸다면 인구를 무작위로 추출하여 더 작은 데이터 집합을 만들거나 Brown과 같은 교육 집합을 사용할 수 있습니다 신체.

+0

답장을 보내 주셔서 감사합니다. 나는 tf-idf가 어떻게 작동하는지 이해하지만, 문제는 단지 훈련 세트와 전처리 된 질의 세트 밖에 없다는 것이다. 따라서 quesion은 tf-idf (또는 idf)가 쿼리에서 키워드를 식별하는 올바른 방법입니까? IR 시스템에 액세스 할 수 없으며 해당 데이터의 색인을 생성 할 수 없습니다 (이미 색인이 생성되어 있지만 그 값을 가져올 수 없습니다 ...) – Smajl

+0

데이터 세트에 대한 액세스 권한이없는 경우 (추측합니다. 이것은 클래스 과제입니까?), 그러면 훈련 세트를 기반으로 idf를 계산할 수 있습니다. 그러나 tf는 해당 문서에만 해당되므로 실제 점수를 계산해야합니다. – oxymor0n

+0

이것이 과제가 아닌 경우, 즉 실제 문서를 보지 못한다면 조금 까다 롭습니다. 데이터 색인 방법에 따라 색인의 정보 (키워드, 태그 등)에 따라 tf를 계산할 수 있습니다. 그러나이 경우 tf-idf 가중치는 인덱스 데이터가 이미 문서와 관련성이 있으므로 유용성을 많이 상실합니다. 이 경우에는 PageRank를 좋은 다음 단계로 제안합니다. – oxymor0n

관련 문제