일본 문장을 구문 분석하고 전체 컨텍스트 레이블을 생성합니다.
이것은 Rust를 사용하여 OpenJtalk (HTS 엔진 이외)의 전처리 부분을 다시 작성 한 것입니다.
메인 인터페이스입니다. Lindera, JPreprocess-NJD, JPReprocess-JPCommon 등의 래퍼입니다. 분석 결과의 단어는 JPREPROCESS-CORE에 의해 정의 된 데이터 구조에 보관됩니다.
예:
use jpreprocess :: * ;
let config = JPreprocessConfig {
dictionary : SystemDictionaryConfig :: File ( path ) ,
user_dictionary : None ,
} ;
let jpreprocess = JPreprocess :: from_config ( config ) ? ;
let jpcommon_label = jpreprocess
. extract_fullcontext ( "日本語文を解析し、音声合成エンジンに渡せる形式に変換します." ) ? ;
assert_eq ! (
jpcommon_label [ 2 ] . to_string ( ) ,
concat! (
"sil^n-i+h=o" ,
"/A:-3+1+7" ,
"/B:xx-xx_xx" ,
"/C:02_xx+xx" ,
"/D:02+xx_xx" ,
"/E:xx_xx!xx_xx-xx" ,
"/F:7_4#0_xx@1_3|1_12" ,
"/G:4_4%0_xx_1" ,
"/H:xx_xx" ,
"/I:3-12@1+2&1-8|1+41" ,
"/J:5_29" ,
"/K:2+8-41"
)
) ; 여기에는 발음, 단어, 음성 부분, JPCommon 및 오류를 나타내는 기타 관련 기능 및 구조와 같은 데이터 구조가 포함됩니다. pos 는 연설의 일부의 약어이며 "연설의 일부"를 나타냅니다.
jpreprocess-dictionary-builder에 의해 생성 된 단어를 메모리에로드하여 단어를 검색 할 수 있습니다.
현재 사전 형식이 자동으로 결정됩니다.
원래 사전은 MECAB와 동일한 CSV 형식이지만 Lindera와 고속으로 분석 할 수 있도록 전용 사전을 미리 생성해야합니다.
그것은 Lindera의 Lindera-Ipadic-Builder를 기반으로 만들어졌지만 JPreprocess-Priceedary-Builder는 현을 미리 구문 분석하고 JPReprocess로 직접 처리 할 수있는 사전 (JPReprocess Dictionary)을 생성 할 수 있습니다.
OpenJtalk와 함께 배송 된 사전을 사용하여 jpreprocess에 대한 사전을 생성하십시오. JPreprocess 상자의 naist-jdic 기능에 사용됩니다.
naist-jdic 기능을 활성화 하고이 상자를 포함 시키면 몇 분이 걸립니다.
OpenJtalk에서 NJDNODE 및 NJD의 구조를 정의하고 NJD에 대한 변환 처리를 수행합니다.
구체적으로, 그것은 숫자 (예 : "10,120"을 "Ichiman Hyakuniju"로 전환하고 악센트 위치를 추정합니다.
OpenJtalk에서 JPCommonLabel의 구조를 정의하고 NJD에서 JPCommon으로 변환 한 다음 JPCommon을 전체 컨텍스트 레이블로 변환합니다.
JPREPROCESS-NJD 변환 프로세스에 사용되는 변이 된 창을 구현하십시오.
이 소프트웨어는 다음과 같은 소스 코드가 포함되어 있습니다.
이 저장소에는 코드 소유자 파일이 있지만 Codeowners 파일에 나열된 개발자 가이 리포지토리의 모든 파일에 대한 저작권을 가지고 있음을 의미하지는 않습니다. 저작권은 통지 또는 라이센스 파일에 나열되며 코드 소유자 파일은 코드 검토를위한 것입니다.
BSD-3-Clause