2012-06-15 2 views
1

상황 :을 HTML 문서로 사용하여 추출한 Named Entities을 나타내는 문자열 그룹이 있습니다. 또한 원본 HTML 문서, NER 엔진에 공급 된 모든 마크 업 평범한 텍스트 및 오프셋 된 파일/의 오프셋/길이가 모두입니다.일반 텍스트를 다시 HTML 문서로 매핑

원본 HTML 문서에 강조 표시된 NE 인스턴스를 주석으로 추가해야합니다. 다음 작업을 수행 할 필요가 있다고하려면 :

  1. 은 HTML 문서에서 NE 문자열 의 시작/끝 지점을 찾아보십시오. DOM Range Object이라는 결과가 이상적 일 수 있습니다.

  2. 주어진 Range 개체의 경우 범위에 스타일 (아마도 <span class="ne-person" data-ne="123">...</span>과 같은 것을 사용)을 적용하십시오. 범위가 여러 DOM 요소 (<a>, <strong> 등)를 포함하지 않을 것이고 스팬이 각 포함 요소 내에서 올바르게 시작/중지해야 완전히 잘못된 HTML로 끝나지 않으므로 까다로운 방법입니다. .

모든 해결책 (전체 또는 부분)을 환영합니다. 백엔드는 대부분 Python/Django이고 프론트 엔드는 jQuery를 사용합니다. 우리는 차라리 백엔드에서이 작업을 수행하지만, 나는 무엇이든 할 수 있습니다.

는 (이 질문에 태그를, 그래서 다시 태그에 자유롭게하는 방법에 대한 약간 불확실했다.)

답변

2

는 다음 중 하나로서 range utility method 플러스 주석 라이브러리를 사용

+0

링크를 제공해 주셔서 감사합니다. 나는 다음 몇일 안에 그들을 체크 아웃 할 것이다. –

+0

늦게 받아 들여서 죄송합니다. 당신의 대답은 몇 가지 흥미로운 방향으로 나를 지적했습니다 - 정확히 그들이 생각한 곳이 아니지만 그럼에도 불구하고 흥미 롭습니다. –

1

무료 소프트웨어 Rangy 자바 스크립트 라이브러리는 친구입니다. 당신이 작업에 대해서는 :

  1. 는 HTML의 문서의 [...] 문자열의 시작/끝 지점을 찾아보십시오.TextRange 확장자의 Range#findText()을 사용할 수 있습니다. 실제로 DOM Level 2 Range 호환 객체 [source]가 생성됩니다.

  2. Range 개체를 사용하면 범위에 스타일 [...]을 적용하십시오.Rangy Highlighter 모듈로 처리 할 수 ​​있습니다. 필요한 경우 DOM 트리 구조를 유지하기 위해 여러 DOM 요소를 강조 표시에 사용합니다.

토론 : 돌아 다니기에 알맞은는 @ 폴 Sweatte에 의해 제안 된 DOM 레벨 2 범위의 유틸리티 메소드의 크로스 브라우저의 구현입니다. 주석 라이브러리를 사용하면 범위 라이브러리 기능을 더 확장 할 수 있습니다. 예를 들어, Rangy는 Annotator 2.0 [source]의 기초가 될 것입니다. 하이라이트를 렌더링하고 사용자가 추가 할 수 없기 때문에 필요하지 않습니다.

+0

이것은 훌륭한 가능성처럼 들립니다. 건강을 회복하고 프로젝트를 다시 시작하면 다시 체크 아웃 목록 상단에 표시됩니다. 감사! –

관련 문제