idNet
1.0.0
이 패키지는 Keras를 사용하여 구축 된 다층 퍼셉트론을 사용하여 언어 식별 ( LID ) 및 방언 식별 ( DID )을위한 일반화 된 아키텍처를 지원합니다. 또한 Scikit-Learn을 사용하여 선형 SVM 분류기를 지원 했습니다 .
모델을로드하려면 :
from idNet import idNet_Enrich
lid = idNet_Enrich("Path to model file", s3_bucket)
did = idNet_Enrich("Path to model file", s3_bucket)
S3_Bucket은 모델을로드하기 위해 옵션 S3 버킷을 포함하는 STR을 사용합니다. 모델 파일 이름에는 필요한 접두사가 포함되어야합니다.
뚜껑 모델이로드되면 다음 특성이 있습니다.
| 방법 | 설명 |
|---|---|
| lid.n_features | 모델의 기능 수 (즉, 해싱 빈) |
| 뚜껑 .n_classes | 모델의 언어 수 |
| lid.lang_mappings | 모든 ISO 639-3 코드에 대한 { "iso_code": "language_name"} 매핑의 사전 |
| 뚜껑 | 현재 모델에 존재하는 언어에 대한 ISO 639-3 코드 목록 |
DID 모델이로드되면 다음 속성이 있습니다.
| 방법 | 설명 |
|---|---|
| did.n_features | 모델을 배우는 데 사용되는 문법의 기능 수 |
| did.n_classes | 모델의 국가 수 |
| did.country_mappings | { "iso_code": "country_name"} 사용 된 모든 국가 코드에 대한 매핑의 사전 |
| did. countries | 현재 모델에 존재하는 지역 방언 (국가 수준)에 대한 국가 코드 목록 |
로드 된 모델은 다음과 같은 작업을 수행합니다.
| 방법 | 설명 |
|---|---|
| LID.PREDICT (데이터) | 문자열 또는 개별 문자열을 취합니다. 예측 된 언어 코드 배열을 반환합니다 |
| did.predict (데이터) | 문자열 또는 개별 문자열을 취합니다. 예측 된 국가 코드 배열을 반환합니다 |
참고 : 모델 파일 이름은 ".did"/". lid"및 ".mlp"/". svm"을 포함해야합니다.이 정보는 모델 유형을 결정하는 데 사용되므로!
새로운 모델을 훈련 시키려면 교육 데이터를 준비해야합니다. 이 프로세스는 자동화됩니다. 방향 및 스크립트는 Data_did 및 Data_lid 디렉토리를 참조하십시오.
from idNet import idNet_Train
id = idNet_train()
| 논쟁 | 유형 | 설명 |
|---|---|---|
| 유형 | (str) | 언어 또는 방언 식별을할지 여부 |
| 입력 | (str) | 입력 폴더로가는 길 |
| 산출 | (str) | 출력 폴더로가는 길 |
| s3 = 거짓 | (부울) | 사실 인 경우 Boto3를 사용하여 S3 버킷과 상호 작용하십시오 |
| s3_bucket = "" | (str) | s3 버킷 이름으로 문자열 |
| 별명 = "언어" | (str) | 모델 저장 / 로딩 모델의 별명 |
| divide_data = true | (부울) | 사실이라면 데이터 세트를 크롤링하십시오. 거짓이면로드하십시오 |
| test_samples = 20 | (int) | 테스트에 사용할 각 클래스의 파일 수 |
| 임계 값 = 100 | (int) | 언어/국가가 모델에 포함되기 전에 필요한 파일 수 |
| 샘플 _per_epoch = 5 | (int) | 훈련 에포크 당 사용할 샘플 수 |
| 언어 = "" | (str) | DID는 현재 모델의 언어를 지정합니다 |
| lid_sample_size = 200 | (int) | 뚜껑의 경우 샘플 당 허용하는 문자 수 |
| did_sample_size = 1 | (int) | 결합 할 100 단어 샘플의 수 |
| preannotate_cxg = false | (부울) | 모든 CXG 벡터를 풍성하고 저장하는 경우 |
| preannotated_cxg = false | (부울) | 그렇다면, 사실이라면 미리 풍부한 CXG 벡터를로드하십시오 |
| CXG_WORKERS = 1 | (int) | 사전 풍부한 데이터 세트 인 경우 사용할 근로자 수 |
| class_constraints = [] | (strs 목록) | 클래스 수를 제한하는 옵션 |
| merge_dict = {} | (dict) | 원본 : 새 이름 키 |
id.train()
| 논쟁 | 유형 | 설명 |
|---|---|---|
| model_type = "mlp" | (str) | MLP 또는 SVM |
| lid_features = 524288 | (int) | 허용 할 문자 N- 그램 기능의 수, 해싱 만 |
| lid_ngrams = (1,3) | (Ints의 튜플) | 해시에서 N- 그램의 범위 |
| did_grammar = ".grammar.p" | (str) | 주석에 사용할 c2xg 문법의 이름 |
| c2xg_workers = 1 | (int) | C2XG 농축 근로자 수 |
| mlp_size = (300, 300, 300) | (Ints의 튜플) | 레이어의 크기와 수; 예를 들어, 각각 300 개의 뉴런에서 3 개의 층 |
| cross_val = false | (부울) | 홀드 아웃 테스트 세트가 아닌 교차 검증을 사용할지 여부 |
| 드롭 아웃 = 0.25 | (뜨다) | 각 계층에 적용 할 드롭 아웃 양 |
| 활성화 = "Relu" | (str) | 활성화 유형; Keras에게 이름을 전달합니다 |
| Optimizer = "SGD" | (str) | 최적화 알고리즘 유형; Keras에게 이름을 전달합니다 |