
섹션 건너 뛰기 :
text_analysis 패키지는 텍스트를 토큰 화하고 문서의 재 입장 점수를 계산하고 terms 의 유사성을 평가하는 메소드를 제공합니다. 정보 검색 시스템의 일부로 자연 언어 처리 ( NLP )에 사용되도록 고안되었습니다.
세 가지 라이브러리로 나뉩니다.
정보 검색 시스템에 대한 자세한 내용 과이 라이브러리의 이론에 대한 자세한 내용은 참조를 참조하십시오.
토큰 화는 다음 단계로 구성됩니다.
term splitter 흰색 공간 및 중간 문장 구두점과 같은 적절한 장소의 용어 목록으로 텍스트를 분할합니다.character filter 토큰 화 전에 용어를 조작합니다 (예 : 사례 변경 및 / 또는 비 단어 문자 제거);term filter 화합물 또는 하이픈 항목을 분할하거나 줄기 및 lemmatization을 적용하여 용어를 조작합니다. termFilter 또한 stopwords 걸러 낼 수도 있습니다. 그리고tokenizer 용어의 토큰 버전을 포함하는 tokens 모음과 소스 텍스트에서 토큰 화 항 (N-Gram)의 위치에 대한 포인터로 변환합니다. 토큰은 선택된 TokenizingStrategy 에 따라 키워드, 용어 및/또는 N- 그램에 대해 생성됩니다. 원하는 N- 그램 범위는 텍스트 나 문서를 발표 할 때 전달 될 수 있습니다. 
TextDocument는 텍스트 문서의 단락 , 문장 , 용어 및 토큰을 열거하고 가독성 측정을 계산합니다.
Flesch reading ease score , 100 점 척도에서 문장 길이 및 단어 길이에서 계산 된 재조장 측정 값; 그리고Flesch-Kincaid grade level , 미국 학교 학년 수준에 비해 재진성 측정. TextDocument 또한 키워드 (및 키워드 점수)를 얻을 수있는 빠른 키워드 추출 (레이크) 알고리즘을 사용하여 생성 된 동시 발생 그래프가 포함되어 있습니다. 다음과 같은 term 유사성 측정은 문자열의 확장으로 제공됩니다.
Damerau–Levenshtein distance 한 term 다른 용어로 변경하는 데 필요한 최소 단일 문자 편집 (전치, 삽입, 삭제 또는 대체) 수입니다.edit similarity 0.0 ~ 1.0의 스케일에서 Damerau–Levenshtein distance 의 정규화 된 척도이며, 최대 편집 거리 (두 항의 길이의 합)과 계산 된 editDistance 의 차이를 최대 편집 거리로 나누어 계산합니다.length distance 두 항 사이의 길이 차이의 절대 값을 반환합니다.character similarity 0.0 ~ 1.0의 척도에서 각 용어의 고유 문자 모음과 관련된 유사성 두 항을 반환합니다.length similarity 로그 척도에서 0.0에서 1.0의 스케일에서 두 항의 길이의 유사성을 반환합니다 (1- 용어 길이 비율의 로그). 그리고Jaccard similarity 유한 샘플 세트 사이의 유사성을 측정하며 교차로의 크기를 샘플 세트의 결합 크기로 나눈 값으로 정의됩니다. 용어 유사성 클래스는 두 용어의 모든 유사성 측정을 열거하고 4 가지 측정 값을 단일 값으로 결합한 TermSimilarity.similarity 속성을 제공합니다.
indesmilarity 클래스는 주문 수정 알고리즘에 사용되는 k-grams 로 항을 분할하는 기능도 제공합니다.
( 뒤로 맨 위로 )
플러터 프로젝트의 pubspec.yaml 에서 다음의 종속성을 추가하십시오.
dependencies :
text_analysis : <latest version> 코드 파일에 Text_analysis 라이브러리 가져 오기를 추가하십시오. 또한 porter_2_stemmer 패키지에서 Porter2Stemmer 클래스를 가져옵니다.
// import the core classes
import 'package:text_analysis/text_analysis.dart' ;
패키지의 확장 및/또는 유형 정의를 사용하려면 다음 가져 오기를 추가하십시오.
// import the implementation classes, if needed
import 'package:text_indexing/implementation.dart' ;
// import the typedefs, if needed
import 'package:text_indexing/type_definitions.dart' ;
// import the extensions, if needed
import 'package:text_indexing/extensions.dart' ;
기본 영어 토큰 화는 영어 필터가없는 English.analyzer 를 사용하여 수행 할 수 있습니다.
// Use the static English.analyzer instance to tokenize the text using the
// English analyzer.
final tokens = await English .analyzer. tokenizer (readabilityExample,
strategy : TokenizingStrategy .all, nGramRange : NGramRange ( 1 , 2 ));텍스트 나 문서를 분석하려면 텍스트 문서를 수화하여 텍스트 통계 및 재독 상태 점수를 얻습니다.
// get some sample text
final sample =
'The Australian platypus is seemingly a hybrid of a mammal and reptilian creature.' ;
// hydrate the TextDocument
final textDoc = await TextDocument . analyze (
sourceText : sample,
analyzer : English .analyzer,
nGramRange : NGramRange ( 1 , 3 ));
// print the `Flesch reading ease score`
print (
'Flesch Reading Ease: ${ textDoc . fleschReadingEaseScore (). toStringAsFixed ( 1 )}' );
// prints "Flesch Reading Ease: 37.5" 용어를 비교하려면 term 에서 원하는 확장자 또는 indesmilarity 클래스의 정적 메소드를 호출하십시오.
// define a misspelt term
const term = 'bodrer' ;
// a collection of auto-correct options
const candidates = [
'bord' ,
'board' ,
'broad' ,
'boarder' ,
'border' ,
'brother' ,
'bored'
];
// get a list of the terms orderd by descending similarity
final matches = term. matches (candidates);
// same as TermSimilarity.matches(term, candidates))
// print matches
print ( 'Ranked matches: $ matches ' );
// prints:
// Ranked matches: [border, boarder, bored, brother, board, bord, broad]
//
자세한 내용은 예제를 참조하십시오.
( 뒤로 맨 위로 )
text_analysis 라이브러리의 주요 인터페이스는이 섹션에서 간단히 설명되어 있습니다. 자세한 내용은 문서를 참조하십시오.
API에는 상당한 양의 보일러 플레이트가 포함되어 있지만 코드를 최대한 읽을 수 있고 확장 가능하며 재사용 할 수있는 것으로 만들기위한 것입니다.
interface > implementation mixin > base-class > implementation class pattern 사용합니다.interface 필드와 메소드를 노출하지만 구현 코드를 포함하지 않는 추상 클래스입니다. interface implementation class 인스턴스를 반환하는 공장 생성자를 노출시킬 수 있습니다.implementation mixin interface 클래스 방법을 구현하지만 입력 필드는 아닙니다.base-class 는 implementation mixin 가진 추상 클래스이며 하위 클래스에 대한 기본의 이름이없는 생성 Const 생성자를 노출시킵니다. 의도는 implementation classes base class 확장하여 Const 생성 생성자를 통해 전달 된 최종 속성으로 interface 입력 필드를 무시한다는 것입니다.( 뒤로 맨 위로 )
이용 약관 클래스는 다음과 같은 두 용어 사이의 유사성 측정을 제공합니다.
characterSimilarity 0.0 ~ 1.0의 척도로 각 용어의 고유 한 문자 모음과 관련된 유사성 두 항을 반환합니다.editDistance Damerau–Levenshtein distance , 한 term 로 변경하는 데 필요한 최소 단일 문자 편집 (전치, 삽입, 삭제 또는 대체)을 반환합니다.editSimilarity 최대 편집 거리 (두 항의 길이의 합)과 계산 된 editdistance의 차이를 최대 편집 거리에 의해 나누어 계산 된 0.0 ~ 1.0의 스케일로 Damerau–Levenshtein distance 의 정규화 된 editDistance 을 반환합니다.lengthDistance 두 항 사이의 길이 차이의 절대 값을 반환합니다.lengthSimilarity 로그 척도에서 0.0에서 1.0의 스케일에서 두 항의 길이의 유사성을 반환합니다 (1- 용어 길이 비율의 로그).jaccardSimilarity 두 용어의 Jaccard 유사성 지수를 반환합니다.한 용어를 다른 용어 모음과 비교하려면 다음의 정적 방법도 제공됩니다.
editDistanceMap 용어와 함께 editSimilarity 에 대한 terms 맵을 반환합니다.editSimilarityMap 용어로 editSimilarity 에 대한 terms 맵을 반환합니다.lengthSimilarityMap 용어와 함께 길이 terms 해시 맵을 lengthSimilarity 으로 반환합니다.jaccardSimilarityMap 용어와 함께 Jaccard 유사성 지수에 대한 terms 맵을 반환합니다.termSimilarityMap terms 의 해시 맵을 용어와 함께 inmilarity로 반환합니다.termSimilarities , editSimilarities , characterSimilarities , lengthSimilarities 및 jaccardSimilarities 모두 후보 용어에 대한 [유사한 인덱스] 값의 목록을 반환합니다. 그리고matches 용어 유사성의 내림차순으로 용어의 terms 에서 가장 좋은 경기를 반환합니다 (첫 번째 일치).문자열 비교는 대소 문자에 민감하지 않습니다.
TextSimilarity 클래스는 확장자 라이브러리에서 가져올 수있는 확장 방법에 의존합니다.
( 뒤로 맨 위로 )
Textanalyzer 인터페이스는 텍스트 분석에 사용되는 언어 별 속성 및 방법을 노출시킵니다.
LatinlanguageAnalyzer는 라틴/로마 알파벳/문자 세트를 사용하는 언어의 TextAnalyzer 인터페이스 방법을 구현합니다.
Textanalyzer의 영어 구현은이 라이브러리에 포함되어 있으며 LatinLanguageAnalyzerMixin 에 믹스가 포함되어 있습니다.
( 뒤로 맨 위로 )
TextDocument 객체 모델은 텍스트 문서의 단락 , 문장 , 용어 , 키워드 , N- 그램 , 음절 수 및 토큰을 열거하고 텍스트 분석 측정을 반환하는 기능을 제공합니다.
TextDocumentmixin은 AveragesEntencelength, AveragesyllableCount, WordCount, FleschreadingEasescore 및 Fleschincaidgradelevel 메소드를 구현합니다.
텍스트 문서는 이름이없는 공장 생성자로 수화되거나 분석 또는 분석 정적 메소드를 사용하여 수화 할 수 있습니다. 또는 TextDocumentBase 클래스를 확장하십시오.
( 뒤로 맨 위로 )
다음 정의는 문서 전체에서 사용됩니다.
corpus - index 유지되는 documents 모음.cosine similarity - 두 벡터의 유사성, 그들 사이의 각도의 코사인, 즉 벡터의 도트 생성물은 유클리드 길이 (위키 백과)의 생성물로 나눈 값으로 측정되었습니다.character filter - 토큰 화를 준비 할 때 텍스트의 문자 필터.Damerau–Levenshtein distance - 한 term 다른 용어로 변경하는 데 필요한 최소 작업 수 (단일 문자의 삽입, 삭제 또는 두 인접 문자의 삽입 또는 두 인접 문자의 대체)를 계산하여 두 terms 사이의 edit distance 측정하기위한 메트릭입니다.dictionary (in an index) - corpus 문서에서 발생 빈도에 대한 terms 해시 ( vocabulary ).document - corpus 의 기본 키에 고유 식별자 ( docId )가 있고 색인화 된 하나 이상의 텍스트 필드가 포함 된 corpus 의 레코드.document frequency (dFt) - 용어가 포함 된 corpus 의 문서 수입니다.edit distance - 한 문자열을 다른 문자열로 변환하는 데 필요한 최소 작업 수를 계산하여 두 가지 용어가 어떻게 다른지 측정합니다 (Wikipedia).etymology - 단어 형태의 역사에 대한 연구와 확장에 따라 시간이 지남에 따라 의미 론적 의미의 기원과 진화 (Wikipedia).Flesch reading ease score 100 점 척도에서 문장 길이와 단어 길이에서 계산 된 재 입장 측정. 점수가 높을수록 문서를 이해하기가 더 쉬워집니다 (Wikipedia의).Flesch-Kincaid grade level - 미국 학교 학년 수준에 비해 재진성 측정. 또한 문장 길이와 단어 길이 (Wikipedia)에서 계산됩니다.IETF language tag - 인터넷에서 인간 언어를 식별하는 데 사용되는 표준화 된 코드 또는 태그. (Wikepedia에서).index - vocabulary terms 에 대해 corpus document 참조를 찾는 데 사용되는 역 색인.index-elimination - 용어가 검색 문구의 term 모음에있는 인덱스에서 항목 terms 하위 집합을 선택합니다.inverse document frequency (iDft) - 코퍼스에서 term 얼마나 드문 지에 대한 정규화 된 측정. log (N / dft) 로 정의되며, 여기서 n은 인덱스의 총 항 수입니다. 드문 용어의 iDft 높지만 빈번한 용어의 iDft 낮을 수 있습니다.Jaccard index 유한 샘플 세트 사이의 유사성을 측정하며 교차로의 크기를 샘플 세트의 조합 크기 (Wikipedia)로 나눈 값으로 정의됩니다.Map<String, dynamic> 은 "Java Script Object Notation" 의 약어입니다.k-gram 의 (임의의 k 연속 문자 term . k-gram "$"로 시작하여 용어의 시작을 나타내고 용어의 끝을 나타내는 "$"로 끝납니다. "Castle"의 3 그램은 { lemma or lemmatizer lemmatisation (또는 lemmatization)은 단어의 렘마 또는 사전 형식 (Wikipedia)에 의해 식별 된 단일 항목으로 분석 할 수 있도록 단어의 감염된 형태를 함께 그룹화하는 과정입니다.n-gram (때로는 Q-Gram이라고도 함)은 주어진 텍스트 또는 음성 샘플에서 나온 n 항목의 연속 순서입니다. 항목은 응용 프로그램에 따라 음소, 음절, 문자, 단어 또는 기본 쌍일 수 있습니다. n-grams 일반적으로 텍스트 또는 음성 corpus 에서 수집됩니다. 항목이 단어 일 때, n-grams 대상 포진 (Wikipedia)이라고 할 수도 있습니다.Natural language processing (NLP) 는 컴퓨터와 인간 언어 간의 상호 작용과 관련된 언어학, 컴퓨터 과학 및 인공 지능의 하위 필드로, 특히 컴퓨터를 프로그래밍하는 방법 (Wikipedia).Part-of-Speech (PoS) tagging 주어진 시퀀스에서 가정하는 어휘 구문 범주 (Wikipedia)에서 어떤 어휘 구문 범주를 나타내는 태그로 모든 단어를 일련의 단어로 표시하는 작업입니다.Phonetic transcription - 상징을 통해 음성 소리 (또는 전화)의 시각적 표현. 가장 일반적인 유형의 발음 전사는 국제 발음 알파벳 (위키 백과)과 같은 음성 알파벳을 사용합니다.postings - vocabulary documents 하는 별도의 색인. 위치 index 에서 게시물은 text 의 각 term 위치를 기록하여 위치 역 index 생성합니다.postings list - document 의 term 위치에 대한 기록. term 의 위치는 text 의 모든 terms 를 포함하는 배열의 term 색인을 의미합니다. 구역 index 에서 postings lists text A zone 에서 각 term 의 위치를 기록합니다.stem or stemmer 스템 밍은 자국어 (또는 때로는 파생 된) 단어를 단어 줄기, 기본 또는 근본 형식 (일반적으로 Wikipedia)으로 줄이는 과정입니다.stopwords 인덱싱에서 제외 된 언어의 일반적인 단어.term - corpus 에서 색인화 된 단어 또는 문구. term 사용 된 tokenizer 에 따라 코퍼스에 사용 된 실제 단어와 다를 수 있습니다.term filter - 용어 모음 (예 : Stopwords)에서 원치 않는 용어를 필터링하고 복합 용어를 별도의 용어로 나누거나 stemmer 및 / 또는 lemmatizer 호출하여 용어를 조작합니다.term expansion - 유사한 맞춤법 (예 : 철자 수정) 또는 용어에 대한 동의어 용어 찾기.term frequency (Ft) - 인덱스 또는 인덱스 객체에서 term 주파수.term position - corpus 에서 토큰 화 된 정렬 된 terms 배열에서 term 의 제로 기반 색인.text - document 의 색인 콘텐츠.token - 토큰 tokenizer 반환 한 텍스트 소스에서 term 표현. 토큰에는 텍스트 또는 발생 빈도 ( term frequency )의 위치 위치 ( term position )와 같은 term 에 대한 정보가 포함될 수 있습니다.token filter - 토큰 화기 출력에서 tokens 의 서브 세트를 반환합니다.tokenizer 문자 필터, term 필터, Stemmer 및 / 또는 Lemmatizer를 적용한 후 text 에서 token 모음을 반환하는 기능.vocabulary - corpus 에서 색인 된 terms 모음.zone - 용어가 발생하는 문서의 필드 또는 영역, 파라 메트릭 인덱스에 사용되거나 검색 결과의 점수 및 순위는 특정 영역의 용어를 포함하는 문서의 점수가 높아집니다 (예 : 문서 본문).( 뒤로 맨 위로 )
( 뒤로 맨 위로 )
버그를 찾으면 문제를 채우십시오.
이 프로젝트는 리소스에 우선 순위 호출을받는 수익 프로젝트를위한 지원 패키지이므로 문제에 즉시 응답하지 않거나 요청을 당기지 않으면 인내심을 가지십시오.