2012-12-31 5 views
0

나는 매우 큰 데이터 세트 (위키피디아에서 추출)를 가지고 있습니다. 나는 각각의 테이블에서 의미있는 트리플 세트를 추출하려고한다. (이것은 위키 피 디아 infoboxes에서 triple을 추출하는 것과 충돌하지 않는다.정보 추출 트리플 폼 테이블

트리플은 인간에게 의미 상으로 의미가 있어야하며, 트리플이 URI 및 기타 형식으로 추출되는 DBpedia와는 다릅니다. 그래서 테이블 텍스트 값을 추출하는 것만으로도 괜찮습니다.

다양한 테이블 방향과 모양을 염두에 두십시오. 내가 보는 주요 작업은 테이블 레코드의 주요 엔터티 (예 : 학교 기록의 학생 이름)를 추출하여 트리플의 '제목'으로 사용할 수 있도록하는 것입니다.

이 같은 테이블에 대한 예 enter image description here

, 우리는 주요 실체를 알아야하는 것은 "서버"이고 관계가 있어야한다 그래서 다른 사람은 단지 객체와 같은 : 또한

<AOLserver> <Developed by> <NaviSoft>. 
<AOLserver> <Open Source> <Yes>. 
<AOLserver> <Software license> <Mozilla>. 
<AOLserver> <Last stable version> <4.5.1>. 
<AOLserver> <Release date> <2009-02-02>. 

, 항상 주체가 테이블의 첫 번째 열에있는 것은 아니며, 어떤 주제로도 같은 주제에 대해 이야기하지 않는 테이블조차 있습니다.

이 주요 엔티티가 처음이 아닌 마지막 열 수있는 테이블은 다음과 같습니다

enter image description here

이 표는 같은 관계를 생성해야합니다 :

<Arsène Wenger> <Position> <Manager>. 
<Steve Bould> <Position> <Assistant manager> 

질문

내 첫 번째 질문은 규칙 기반 방법을 사용하여이 작업을 수행 할 수 있는가? 예를 중심으로 규칙을 정하고 일반화하려고 노력하여 올바른 개체를 탐지 할 수 있습니까? 예제 규칙을 제안 할 수 있습니까?

두 번째 질문은 평가에 대한 것입니다. 어떻게 그러한 시스템을 평가할 수 있습니까? 성능을 측정 할 수 있도록 어떻게 향상시킬 수 있습니까?

답변

1

그래서, 마지막으로 내가 내 프로젝트의 목표를 달성 할 수있었습니다, 그것은 많이 필요 일과 시험의 그러나 그것을 달성했다. 테이블을 추출하고 나쁜 테이블, 다음을 제외 메모리 내 객체로

2 구성 요소를 가져올 수

1 구성 요소 :

는 아이디어는 다음과 같은 파이프 라인에서 주로 휴식 테이블 태그에 사용되는 것들이지만 실제 테이블이 아닙니다 (때때로 페이지의 작성자가 데이터 모양을 구성하여 테이블에 넣을 때가 있습니다)

3- 스타일을 제거하는 구성 요소 테이블 및 또한 열 번호로 데이터를 반복하여 열/행 범위를 해결할 수

4-a 테이블의 방향 (수평/수직)과 해당 테이블의 헤더 행/열을 분류하는 기계 학습 기반 분류 자. 첫 번째 분류는 지원 벡터 머신 분류가

5 기계 학습의 관계 트리플 < 대상> < 조건> < 개체의 "대상"해야 행/열을 분류하는 기준으로 분류> 문자 수, 표/행 셀 수 비율, 숫자 대 텍스트 비율, 대소 문자 등의 기능을 사용합니다. 정확도와 회수율 모두에서 약 80 ~ 85 %를 달성했습니다.

두 번째 분류기는 하나의 행/열 내부에있는 셀의 관련성과 더 관련이있는 기능을 사용하는 임의의 포리스트 분류기입니다. 우리는 정확도와 회수율 모두에서 약 85 %를 달성했습니다.

다른 정제 구성 요소와 추론이 출력이 더 명확하게 과정에 참여하고 테이블의 내용에 관련 된

는 일반적으로 도구보다 일반적인 어떤을 만들기 위해 위키 백과에서 사용하는 추가 데이터가 없었다 웹상의 html 표. 분류 자의 훈련 데이터는 주로 Wikipedia 콘텐츠에 편향되어있었습니다!

일단 소스 코드가 완성되면 질문 코드를 업데이트 할 예정입니다.

+1

환상적 - 멋지게 완료되었습니다. 다행스럽게도 테이블 html의 의미 중 일부 (특히 Arsenal 페이지는 분명히 난독 화되었습니다!) –

1

환상적인 프로젝트 !! 작동 시키려면 def가 dbpedias crawlers/extractors - http://wiki.dbpedia.org/Documentation에 통합되도록하십시오. http://en.wikipedia.org/wiki/Comparison_of_web_server_software

당신이 HTML을 보면 행이 모든 개체의 제목, TBODY 요소 내부 TR 요소에 포함하는 동안, 열 제목이하는 THEAD 요소에있는 (/의 RDFS - 참고로

: label)를 사용하면 문제가 너무 복잡해 지거나 부정확 해지지 않고 문제를 해결할 수 있습니다.

html 구조를 검사하여 얼마나 많은 행에 th 요소가 있는지 확인하면이 방법을 평가할 가치가 있습니다.

두 번째 예 (http://en.wikipedia.org/wiki/Arsenal_F.C.)에는 thead 요소 help가 없다는 사실이 있습니다. - 페이지 자체 즉, 무기고는 테이블에있는 데이터의 대상입니다.

이 또한 HALP 나는 그것이 위키 피 디아에있는 모든 테이블에 걸쳐 얼마나 일반화 확실하지 않다 관계

을 규명 할 수 위키 피 디아에 대한 vCard를 분산과 같은 마이크로 포맷,하지만 좋은 시작해야한다. 나는 그다지 까다로워지는 것보다는 HTML 구조와 마이크로 포맷을 아주 많이 사용하는 것보다 훨씬 뛰어날 것이라고 생각한다.

또한 각 링크는이를 식별 할 수있는 dbpedia URI를 가지며, 이러한 상황에서 매우 유용하다. 예. http://example.com/resource/AOLserverhttp://example.com/property/Serverhttp://dbpedia.org/resource/AOLserver. http://example.com/resource/AOLserverhttp://example.com/property/Developed_byhttp://dbpedia.org/resource/NaviSoft. http://example.com/property/Developed_by a rdf : Property. http://example.com/property/Developed_by RDFS : 라벨 "에 의해 개발이"

@en 당신이 볼 수있는 - http://wifo5-03.informatik.uni-mannheim.de/bizer/silk/가 발생 매핑

에 대한 가치가 줄래