knnsearch
편집 거리로 최근접이웃 찾기
설명
예제
가장 가까운 단어 찾기
편집 거리 탐색기를 만듭니다.
vocabulary = ["Text" "Analytics" "Toolbox"]; eds = editDistanceSearcher(vocabulary,2);
"Test"
와 "Analysis"
에 가장 가까운 단어를 각각 찾습니다.
words = ["Test" "Analysis"]; idx = knnsearch(eds,words)
idx = 2×1
1
2
반환된 인덱스를 사용하여 단어집에서 단어를 가져옵니다.
nearestWords = eds.Vocabulary(idx)
nearestWords = 1x2 string
"Text" "Analytics"
가장 가까운 단어에 대한 편집 거리 구하기
편집 거리 탐색기를 만듭니다.
vocabulary = ["MATLAB" "Text" "Analytics" "Toolbox"]; eds = editDistanceSearcher(vocabulary,2);
"Test"
와 "Analysis"
에 가장 가까운 단어를 각각 찾고 편집 거리를 구합니다.
words = ["Test" "Analysis"]; [idx,d] = knnsearch(eds,words)
idx = 2×1
2
3
d = 2×1
1
2
반환된 인덱스를 사용하여 단어집에서 단어를 가져옵니다.
nearestWords = eds.Vocabulary(idx)
nearestWords = 1x2 string
"Text" "Analytics"
단어 "Test"
를 "Text"
로 변경하려면 한 번의 편집(치환)이 필요합니다. 단어 "Analysis"
를 "Analytics"
로 변경하려면 두 번 편집(치환과 삽입)이 필요합니다.
여러 개의 이웃 찾기
편집 거리 탐색기를 만듭니다.
vocabulary = ["MathWorks" "MATLAB" "Analytics"]; eds = editDistanceSearcher(vocabulary,5);
"Math"
와 "Analysis"
에 가장 가까운 단어 2개를 각각 찾고 편집 거리를 구합니다.
words = ["Math" "Analysis"]; idx = knnsearch(eds,words,'K',2)
idx = 2×2
1 2
3 NaN
"Math"
에 가장 가까운 단어 2개를 표시합니다.
idxMath = idx(1,:); newWords = eds.Vocabulary(idxMath)
newWords = 1x2 string
"MathWorks" "MATLAB"
"Analysis"
의 최대 편집 거리 내에 존재하는 단어가 1개이므로 함수는 나머지 인덱스에 NaN
을 반환합니다. 유효한 인덱스를 가진 가장 가까운 단어를 표시합니다.
idxAnalysis = idx(2,:); idxAnalysis(isnan(idxAnalysis)) = []; newWords = eds.Vocabulary(idxAnalysis)
newWords = "Analytics"
입력 인수
eds
— 편집 거리 탐색기
editDistanceSearcher
편집 거리 탐색기로, editDistanceSearcher
객체로 지정됩니다.
words
— 입력 단어
string형 벡터 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열
입력 단어로, string형 벡터, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. words
를 문자형 벡터로 지정할 경우 이 함수는 인수를 단일 단어로 처리합니다.
데이터형: string
| char
| cell
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 각 이름과 값을 쉼표로 구분하고 Name
을 따옴표로 묶으십시오.
예: knnsearch(eds,words,'K',3)
은 eds
에서 words
의 요소에 대한 최근접이웃 3개를 찾습니다.
K
— 찾을 최근접이웃의 개수
1 (디폴트 값) | 양의 정수
words
의 각 요소에 대해 찾을 최근접이웃의 개수로, 양의 정수로 지정됩니다.
예: 'K',3
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
IncludeTies
— 거리 값이 동일한 이웃을 포함하는 옵션
false
(디폴트 값) | true
거리 값이 동일한 이웃을 반환하는 옵션으로, true
또는 false
로 지정됩니다.
'IncludeTies'
가 false
이면 함수는 편집 거리가 가장 짧은 K개 이웃을 반환합니다. 여기서 K는 찾을 이웃의 개수입니다. 이 경우 함수는 N×K 행렬을 출력합니다. 여기서 N은 입력 단어의 개수입니다. K를 지정하려면 'K'
이름-값 쌍 인수를 사용합니다.
'IncludeTies'
가 true
이면 함수는 K번째 최소 거리와 동일한 거리를 갖는 이웃도 출력값으로 반환합니다. 이 경우 함수는 N×1 크기의 셀형 배열을 출력합니다. 여기서 N은 입력 단어의 개수입니다. 셀형 배열의 요소는 최소 K개의 요소를 가진 벡터입니다. 함수는 각 벡터의 이웃을 거리 오름차순으로 정렬합니다.
예: 'IncludeTies',true
데이터형: logical
출력 인수
idx
— 탐색기 내 최근접이웃의 인덱스
행렬 | 벡터로 구성된 셀형 배열
탐색기 내 최근접이웃의 인덱스로, 행렬로 반환되거나 벡터로 구성된 셀형 배열로 반환됩니다.
'IncludeTies'
가 false
이면 함수는 편집 거리가 가장 짧은 K개 이웃을 반환합니다. 여기서 K는 찾을 이웃의 개수입니다. 이 경우 함수는 N×K 행렬을 출력합니다. 여기서 N은 입력 단어의 개수입니다. K를 지정하려면 'K'
이름-값 쌍 인수를 사용합니다.
'IncludeTies'
가 true
이면 함수는 K번째 최소 거리와 동일한 거리를 갖는 이웃도 출력값으로 반환합니다. 이 경우 함수는 N×1 크기의 셀형 배열을 출력합니다. 여기서 N은 입력 단어의 개수입니다. 셀형 배열의 요소는 최소 K개의 요소를 가진 벡터입니다. 함수는 각 벡터의 이웃을 거리 오름차순으로 정렬합니다.
데이터형: double
| cell
d
— 이웃에 대한 편집 거리
행렬 | 벡터로 구성된 셀형 배열
이웃에 대한 편집 거리로, 행렬로 반환되거나 벡터로 구성된 셀형 배열로 반환됩니다.
'IncludeTies'
가 false
이면 함수는 편집 거리가 가장 짧은 K개 이웃을 반환합니다. 여기서 K는 찾을 이웃의 개수입니다. 이 경우 함수는 N×K 행렬을 출력합니다. 여기서 N은 입력 단어의 개수입니다. K를 지정하려면 'K'
이름-값 쌍 인수를 사용합니다.
'IncludeTies'
가 true
이면 함수는 K번째 최소 거리와 동일한 거리를 갖는 이웃도 출력값으로 반환합니다. 이 경우 함수는 N×1 크기의 셀형 배열을 출력합니다. 여기서 N은 입력 단어의 개수입니다. 셀형 배열의 요소는 최소 K개의 요소를 가진 벡터입니다. 함수는 각 벡터의 이웃을 거리 오름차순으로 정렬합니다.
데이터형: double
| cell
버전 내역
R2019a에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)