위키피디아 덤프가 있는데 특정 카테고리 (예 : '종교')에 속한 기사를 걸러 내고 싶습니다. 각 기사에는 text
필드 하단에 카테고리 목록이 있지만 문제는 즉각적인 카테고리 만 나열된다는 것입니다 (예 : 'Jesus'article은 'Religion'카테고리에 속하지만 'Religion'자체는 아닙니다. 하단에 해당 범주 중 하나로 나열).카테고리별로 위키 백과 문서 필터링
내 접근
내 첫 번째 방법은 "종교"나열 각 카테고리 또는 페이지 목록 카테고리 그래프를 횡단 상기 categorylinks
표를 사용 하였다 및 "종교"로 특정 고수준 카테고리 주어진 그것의 페이지의 하단.
내가이 시나리오 우연히 때까지 좋은 일을했다
문제 :
Religion ->Religon and society ->Religion and science ->Religion in science fiction ->Jedi -> 범주와 스타 워즈에 대한 기사.
내 알고리즘에 따르면, 기사 Return of the Jedi은 고수준 카테고리의 종교에 속해 있지만 실제로는 '제다이의 귀환'을 걸러 내고 싶지 않습니다. 그것 does belong more to other categories
(나는 이것이 주된 문제 인 것 같아요, 주어진 기사의 다른 카테고리의 무게를 식별하는 방법). 내가 그래프를 순회하면서 이미 방문한 카테고리의 다른 속하지 않는 경우, 확인 찾을 기사 |
또 다른 솔루션
한 가지 가능한 솔루션은 각 카테고리에 있습니다. 문제는 '종교'와 같은 두 번째 상위 수준 카테고리가 '종교'와 다른 상위 상위 부모를 가질 수 있기 때문에 그다지 효과가 없다는 것입니다.
또 다른 가능한 해결책은 특정 레벨 (예 : 3)에서 순회를 자르는 것입니다. 그러면 앞의 예제가 수정됩니다. 이제 문제는 어느 수준 (경험적?)에 있습니다. 최적의 솔루션이 아니므로 지정된 상위 카테고리에 속해 있지만 일부 기사는 남아 있습니다. PetScan을 사용하고 깊이 2에서 순회를 절단하면 약 12000 건의 기사가 제공됩니다. 기사는 거의없고 '버트 랜드 러셀'과 같은 '오 탐지 (false positives)'가 있습니다.
아이디어가 있으십니까?
편집 : Wikipedia API를 사용하면 옵션이 아닌 것처럼 보입니다 (많은 카테고리를 필터링해야 함).
그건 사실입니다. 'belongs_to (articles, category_to_exclude)가 아니라 belongs_to (article, list_of_categories_to_include)'와 같은 일을하는 것이 효과가있을 것 같습니다. 그것에 대해 더 생각해야합니다. 감사. –