2016-07-03 3 views
5

TV 쇼 및 기타 미디어 (게임, 영화 등) 용 스크레이퍼를 쓰고 있으며 모든 소스가 특정 프로그램에 대해 동일한 방식으로 포맷 된 것은 아닙니다. 예를 들어, 한 소스는 대시가있는 부제를, 다른 것은 세미콜론을 나타낼 수 있습니다. 나는 현재 Levenshtein 거리를 사용하여 긁어 낸 데이터를 TV 쇼 파일 이름에서 추출한 데이터와 비교하지만, 알고리즘이 문장 길이보다 짧은 짧은 문자열을 위해 설계되었는지 궁금합니다. 이 필요에 더 적합한 알고리즘이 있습니까?TV 쇼 제목 비교에 가장 적합한 문자열 거리 알고리즘은 무엇입니까?

답변

3

비교/거리 측정을하기 전에 제목을 표준화 (표준화)해야합니다.

  • 기본 포맷 (예 : UTF16 인코딩, 선두에/후행 공백 및 탭)
  • 알파벳 규칙 (예와 교체) (
  • 약어 확장 예 :

    정규화 등이 포함되어야 뉴욕 -> 뉴욕)

  • 위치 이름 규칙 (예 : 도시 이름에는 공백이 포함되어서는 안되고 대시)
  • 대문자 사용 규칙 (예 : 대시 다음의 각 문자는 대문자이어야 함)
  • 기호 제거 (예 : !?)
  • 번호 변환이 ("세 백명"을 "300")
  • 로마 숫자 변환
  • 비 미국 영어 미국 영어 (예 : "루이 16 세"를 "루이 16") (예를 들어, "컬러"당신은 단어의 쌍 사이의 Levenshtein 거리를 사용할 수 있습니다

대신 "대")의 "대"

  • 약어 규칙 (예 : "주식"대신 "통합"의 "색상")에 (전체 문장에 대해 사용하지 마십시오.) 특정 단어 (예 : "The")가 표현 중 하나에서 누락 될 수 있으므로 일부 슬라이딩 창을 구현하십시오.

  • 관련 문제