문제

나는 현재 가장 일반적인 문구를 거대한 텍스트로 선택 해야하는 프로젝트를 진행하고 있습니다. 예를 들어 다음과 같은 세 문장이 있다고 말합니다.

  • 개가 점프했다 여자 위에.
  • 개가 점프했다 차로.
  • 개가 점프했다 계단 위로.

위의 예에서 나는 추출하고 싶다 "개가 점프했다"텍스트에서 가장 일반적인 문구입니다. 처음에는"오, 노드가 반복되는 그래프를 사용하자 ":

지시 된 그래프 http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png

편집하다: 사과, 나는이 다이어그램을 "Over", "in in in"및 "up"을 만드는 동안 실수를 저질렀다.

나는 각 노드 객체에서 단어가 몇 번이나 발생했는지를 계산하려고했지만 ( "The"는 6; "개"와 "점프", 3 등) 많은 다른 문제에도 불구하고 주된 문제가 발생했을 때 발생했습니다. 우리는 몇 가지 예제를 추가합니다 (나쁜 문법을 무시하십시오 :-)) :

  • 개가 위아래로 뛰어 들었다.
  • 개가 전에 도망 치지 않은 것처럼 개가 뛰어 들었습니다.
  • 개는 행복하게 뛰어 들었다.

우리는 이제 그 이후로 문제가 있습니다. ""새로운 루트 노드 ("the "와 같은 수준)를 시작하면 식별하지 않을 것입니다."개가 뛰어 들었다"지금은 가장 일반적인 문구가 될 때. 그래서 이제는 방향이없는 그래프를 사용하여 모든 단어 간의 관계를 매핑하고 결국 공통 문구를 선택할 수 있다고 생각하지만 이것이 어떻게 작동하는지 잘 모르겠습니다. 당신은 단어 사이의 질서의 중요한 관계를 잃을 때.

누구나 큰 텍스트에서 공통 문구를 식별하는 방법과 내가 사용할 데이터 구조에 대한 일반적인 아이디어가 있습니까?

감사합니다, 벤

도움이 되었습니까?

해결책

이 관련 질문을 확인하십시오. 텍스트 덩어리에서 일반적인 문구를 발견하기위한 기술/도구는 무엇입니까? 또한 관련이 있습니다 가장 긴 공통 서브 스트링 문제.

전에 이것을 게시했지만 사용합니다 아르 자형 내 모든 데이터 마이닝 작업에 대해 이런 종류의 분석에 적합합니다. 특히, tm 패키지. 몇 가지 관련 링크는 다음과 같습니다.

보다 일반적으로 많은 텍스트 마이닝 패키지가 있습니다. Cran의 자연어 처리보기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top