2011-02-14 7 views
2

내 응용 프로그램에서 들어오는 문서의 특성을 "잘"또는 "잘못"으로 기술하고 싶습니다. 이것이 쉬운 일은 아니라는 것을 알지만, 거친 아이디어조차도 유용 할 것입니다. 이 작업을 수행하는 방법은 두 클래스가있는 순진한 베이 즈 분류자를 통해 이루어 지지만 제안은 받아 들일 수 있습니다. 그래서 두 가지 질문 :NLP와 Ruby는 글자의 품질을 특징으로합니다.

  1. 이 방법은 최적이 을 수행하는 방법 (계정 단순성을 고려하여) 충분히 큰 훈련 DB를 가정입니까?

  2. 루비 에이 도서관입니다 (또는 통합 가능한 JRuby에서 또는 무엇이든) 나는이 작은 소란으로 일어날 수 있도록 내 레일 응용 프로그램에 연결 할 수 있습니다?

고마워요!

답변

2

어휘 벡터 분석을 사용해보십시오. 일부 여기에 대상 :

http://en.wikipedia.org/wiki/Semantic_similarity

은 기본적으로 당신이 "잘 쓰여진"또는 "잘못 작성"하다고 판단하고 특정 단어의 빈도를 계산 텍스트의 코퍼스를 구축 할 수 있습니다. 각각에 대해 정규화 된 벡터를 만든 다음 각 문서가 들어오는 벡터의 거리를 계산합니다. 저는 통계학자가 아니지만 베이지안 필터링과 비슷하지만 철자 오류 및 이상 값을 더 잘 처리하는 것으로 보입니다.

어떤 방식 으로든 완벽하지는 않습니다. 그것이 얼마나 정확한지에 따라 최종 판단을 내리기 위해서는 여전히 인간이 필요할 것입니다. 그러나 우리는 검토 자의 수를 줄이기 위해 사전 필터로 사용하여 행운을 얻었습니다.

+0

Ken- 이것을 수행하기 위해 특정 라이브러리를 사용하고 있습니까? 아니면 그냥 손으로 코딩? 시작하기에 좋은 장소 인 것 같습니다. –

+0

그냥 손으로 코딩. 내가 아는 도서관이 없어 ... – seriousken

1

또 다른 간단한 알고리즘은 Flesch-Kincaid의 가독성 측정법입니다. 이것은 널리 사용되고 있으며 쉽게 구현할 수 있어야합니다. Ruby NLP libraries 중 하나에 음절 방법이 있다고 가정합니다.

관련 문제