4

다음 문제에 대한 최선의 접근에 대한 귀하의 의견에 진심으로 감사드립니다. 나는 차 분류 된 리스팅 예제를 사용하고있다.Help : 텍스트에서 데이터 튜플 추출하기 ... 정규식 또는 기계 학습?

문제점 : 주어진 텍스트에서 데이터 튜플을 추출하십시오.

다음은 데이터의 일부 특성입니다.

  1. 텍스트의 어휘 (단어)는 특정 도메인으로 제한됩니다. 최대 100-200 단어를 가정합니다.

  2. 파싱해야하는 텍스트는 아래에 표시된 자동차 광고 데이터와 같은 헤드 라인입니다. 따라서 각 레코드는 하나의 튜플 (행)에 해당합니다.

  3. 경우에 따라 일부 특성이 누락되었을 수 있습니다. 그래서 예를 들어, 원시 데이터 행 # 5 아래에 올해가 없습니다.

  4. 일부 단어가 함께 표시됩니다 (bigrams). "낮은 마일"처럼. 사용할 수

  5. 과거 데이터 = 10,000 개의 레코드

  6. 들어오는 새 데이터 볼륨 = 1,000에서 1,500 사이 기록/주

예상 출력 (년, 메이크업, 모델의 형태로해야한다, 특색). 그래서 출력이 같아야합니다

1 -> (2009, 포드, 퓨전, SE)
2 -> (1997, 포드, 황소 자리, 왜건)
3 -> (2000, 미쓰비시, 미라지, DE)
4 -> (2007, 포드, 원정, EL 제한)
5 -> (혼다, 어코드, EX)
....
....

원시 제목 데이터 :


,

1 -> 2009 포드 퓨전 SE - $ 7000
2 -> 1997 포드 토러스 왜건 - $ 800 (산호세 동쪽)
3 -> '00 미쓰비시 미라지 DE - $ 2499 그림 (사라토가)
4 -> 2007 포드 원정 EL 제한 - $ (7800) (X)
5 -> 혼다 어코드 전 낮은 마일 - $ 2800 그림 (더블린/플레/리버모어)
6 -> 2004 HONDA ODASSEY LX 68K 마일 - $ 10800 (댄빌/산 라몬)
7 -> 93 LINCOLN MARK - $ 2000 (동쪽 오클랜드) 사진
8 -> ####### 2006 LEXUS GS 430 BLACK ON BLACK 114KMI ####### - $ 19700 (san rafael) 사진
9 -> 2004 Audi A4 1.8T FWD - $ 8900 (새크라멘토) 사진
10 -> ####### 2003 GMC C2500 HD EX-CAB 6.0 V8 EFI WHITE 4X4 ####### - $ 10575 san rafael) pic
11 -> 1990 Toyota Corolla RUNS GOOD! 가스를 구해라! 5SPEED CLEAN! REG 2011 O.B.0 - $ 1600 (헤이워드/카스트로 밸리) 사진
12 -> HONDA ACCORD EX 2000 - $ 4900 (dublin/pleasanton/livermore) 사진 13 -> 2009 Chevy Silverado LT 크루 캡 - $ 23900 (dublin/pleasanton/livermore) 그림
(14) -> 2010 아큐라 TSX - V6 - TECH - $ 29,900 그림 (더블린/플레/리버모어)
15 -> 2003 닛산 알티마를 - $ (1830) 그림 (SF)


가능한 선택 :

  1. 기계 학습 닝 텍스트 분류 (등 나이브 베이 즈)
  2. 정규식 내가 알아 내기 위해 정규식이 일을 위해 너무 복잡하고 텍스트 분류가 과잉 인 경우입니다 노력하고 무엇

?

텍스트 분류기를 사용하는 것이 가장 쉬운 방법이라고 생각하십니까?

친절한 도움을 미리 감사드립니다.

+1

알고리즘을 학습/테스트하기 위해 데이터에 레이블을 지정 했습니까? 이로 인해 기계 학습 관점에서 적용 할 수있는 접근 유형이 제한 될 수 있습니다 (예 : 언어 모델링에는 적절한 크기의 자료가 필요함). – jeff7

+0

예. 교육 목적으로 많은 데이터가 있습니다 ... –

답변

4

information extraction이라고하는 잘 연구 된 문제입니다. 당신이하고 싶은 일을하는 것은 간단하지 않으며, 소리를내는 것만 큼 간단하지 않습니다. (예 : 기계 학습은 과도하지 않습니다.) 몇 가지 기술이 있습니다. 연구 영역에 대한 개요를 읽어야합니다.

+0

불행히도 저는 이것에 동의해야합니다. 분류 된 교육 자료가 많은 경우 기회가 있지만 그러한 시스템을 구축/구성하고 테스트하는 것은 쉽지 않습니다. 네임 엔티티 인식 (사전 기반 또는 기타)을 필요로하며, 단어 ngram을 사용하여 일반적인 용어를 찾는 것이 좋습니다.제한된 도메인을 보유하고 있으므로이 예제를 수동으로 레이블을 지정하고 적절한 기능을 설정 한 다음 각 헤드 라인을 토큰 화하고 작동시킬 MALLET을 사용하여 실행하면 생각할 수 있습니다. . – nflacco

3

확인 this 추출 규칙을 작성하는 데 IE 라이브러리 < 문제가 해결 될 것이라고 생각합니다. fast dictionary matching을 만드는 방법에 대한 예제도 있습니다.

+0

+1 또 다른 가능성의 아주 좋은 목록 인 첫 번째 링크 (GATE, UIMA, NLTK, Lingpipe 및 MALLET)에 제공된 '대안'에주의를 환기하고 싶습니다. – Stompchicken

0

이미 주석이 달린 데이터와 각 필드와 관련된 단어 목록이있는 경우 ARX or Phoebus 시스템이 사용자의 요구에 맞다고 생각합니다. 그들의 접근 방식은 정보 추출과 정보 통합의 혼합입니다.

0

좋은 엔티티 인식 라이브러리가 있습니다. Apache opennlp을 보셨습니까?

0

자동차의 특정 모델을 찾는 사용자는 작업이 더 쉽습니다. 나는 정규 표현식으로 무엇을 찾아야할지 알기 때문에 대부분의 Ford Rangers를 분류 할 수 있다고 확신합니다.

나는 당신의 최선의 방법이 String -> Maybe Tuple 유형의 각 자동차 모델에 대한 함수를 작성하는 것이라고 생각한다. 그런 다음 각 입력에 대해이 모든 것을 실행하고 그 입력을 버려 제로 또는 너무 많은 튜플을 만듭니다.

0

Amazon Mechanical Turk와 같은 도구를 사용해야합니다. 인간의 마이크로 태스킹. 또 다른 대안은 데이터 항목 프리랜서를 사용하는 것입니다. upWork는 볼만한 곳입니다. 우수한 품질의 결과를 얻을 수 있으며 비용은 각각 매우 합리적입니다.