2017-11-17 3 views
1

프로그래밍 방식으로 단어의 동음어를 생성하고 싶습니다. 원래 단어와 비슷한 소리를 의미합니다.하위 문자열 수준에서 동음 이의를 생성하는 방법은 무엇입니까?

Soundex 알고리즘이 있지만 일부 문자가 다른 문자 (d 대신 t와 유사 함)로 바뀝니다. 좀 더 정교한 목록이나 알고리즘이 있습니까? 적어도 동음 전화 하위 문자열을 의미합니까?

사전에없는 단어에 적용하고 싶다는 뜻은 전체적이고 실제적인 단어에 의존 할 수 없다는 것을 의미합니다.

편집 :

입력 종종 진짜 (동음) 사전에 따라서 라는 이름의 실체이 있으며, 문자열입니다. 예를 들어 Google 또는 mcdonald의 일 수 있습니다. 이름이 알려진 두 개의 엔티티 이름을 지정하기도하지만 그 중 다수는 인기가 없습니다.

출력은이 문자열의 (임의의) 동음입니다. 단어에는 종종 하나 이상의 동음 이의어가 있기 때문에 하나의 (무작위) 하나의 것이 나의 목표입니다. 구글의 경우에 동음이 각각 gugel, 수 맥도날드의맥도날드의합니다.

+0

는 코드, 입력 및 원하는 출력을 공유합니다. – skrubber

답변

0

이 작업을 수행하는 방법은 연구 주제입니다. 예를 들어 http://www.inf.ufpr.br/didonet/articles/2014_FPSS.pdf을 참조하십시오.

하지만 자신 만의 롤을 만들고 싶다고 가정 해보십시오.

첫 번째 단계는 주어진 문자를 어떻게 들리는 지 표현하는 방법을 알아내는 것입니다. 이것은 짐작으로 매우 어려운 문제입니다. (예를 들어, "읽는"소리는 어떤 단어를 읽는지, 이미 읽었는지에 달려 있습니다!) 그러나 text to phonemes converter은 Arabet이 이것을 영어로 해결했다고 제안합니다.

다음은 사전의 모든 단어에 대해이 작업을 수행하기를 원할 것입니다. 당신이 한 단어에 대해 그렇게 할 수 있다고 가정하면 그것은 단지 스크립트 일뿐입니다.

그러면 비슷한 소리를 쉽게 찾을 수있는 데이터 구조에 저장되기를 원할 것입니다. 원칙적으로 철자에 대한 자동 고침에 사용되는 일종의 알고리즘과 차이가 없습니다. 문자 대신 음소 만 사용하십시오. http://norvig.com/spell-correct.html을 사용하면 어떻게하는지 알 수 있습니다. 또는 http://fastss.csg.uzh.ch/ifi-2007.02.pdf에 설명 된 것과 같은 것을 구현하십시오.

그게 전부입니다.

+0

문제는 제 사전에 macdonald 또는 gugel과 같은 단어가 포함되어 있지 않아 동음 이의어로 간주되지 않는다는 것입니다. 사전을 만들려면 가능한 동음 이의어를 미리 알아야합니다. 그것은 Google에서 Gugel 대신 Google에서 Google로 이동하기를 원하기 때문에 자동 수정과 다릅니다. – ScientiaEtVeritas

+0

오른쪽. 이 접근법에 대해 가능한 모든 대답을 미리 준비해야합니다. – btilly