전체 글
-
(NeedToCompare) 텍스트 비교 앱개발 중앱 개발/android native 비교가필요해 2021. 6. 30. 16:29
앱이름은 NeedToCompare로 정했음 위,아래 텍스트박스를 두어 문자열을 넣으면 텍스트 바뀔때마다 체크를 반복함. 리벤슈타인 알고리즘까지 굳이 쓸필요는 없을듯하며, 일치율은 일치한 text수 / toptext * 100 으로 했다. 상단에 배너하나 넣고 전세계 타겟으로 출시할 예정!! 빠르고 쉽게 만들수 있을것 같아 만들어봤는데 하루 2시간씩 4일 걸렸다. 버그수정이 몇시간 더걸릴지도 모르겠군.. fab이라는 버튼 모양은 이쁜데 왜이리 사용하기 힘들게 만들어 놨는지 ㅋㅋ 안드로이드는 역시 UI 작업이 반인것 같다. 사실 이번어플은 노력을 너무 안하고 만들어서 별로 기대는 안함 haha PC용 Compare 툴이 핸드폰에서도 필요하지 않을까 하는생각으로 만듦!! 비공개 테스트로 검토중~~ 앱이미지는 ..
-
text diff(또는 compare) 앱개발 컨셉잡기앱 개발/android native 비교가필요해 2021. 6. 24. 09:31
C#에서 개발하다보니 텍스트 비교 앱을 쉽게 만들수 있다는 생각이 들었습니다. 물론 사용량은 적겠지만, 쉽게 만들수 있을 것 같아 레퍼런스 조사를 좀 해보았습니다. 구글신님이 깃허브에 올려주신 diff-match-patch 이용한 비교를 이용하고 (Apache 2.0 라이센스!!) 일치율은 LevenshteinDistance 을 이용해서 구하고~ 간단한 텍스트 복사, Clear 기능을 넣고 상단에 배너광고까지 넣으면 될듯합니다~ 며칠만 작업하면 금방 출시까지 할 수 있을것 같지만, 시간이 없다.. 덜덜
-
한글 일치율 비교#5. HammingDistance, JaroWinklerDistance 알고리즘 추가c# Winform 개발/글자비교 2021. 6. 23. 14:51
HammingDistance : 글자개수로 비교 JaroWinklerDistance : LevenshteinDistance 와 마찬가지로 편집거리 알고리즘 클래스를 우선추가한후 public static class HammingDistance { public static int GetHammingDistance(string s, string t) { /* if (s.Length != t.Length) { throw new Exception("Strings must be equal length"); } */ int distance = s.ToCharArray() .Zip(t.ToCharArray(), (c1, c2) => new { c1, c2 }) .Count(m => m.c1 != m.c2); retur..
-
한글 일치율 비교#4. 텍스트 비교 및 일치율 추출c# Winform 개발/글자비교 2021. 6. 22. 16:37
items에 있는 데이터는 이런식으로 들어가 있습니다. "ㅅㅓ ㅇㅜㄹㅅㅣ ㄱㅏㅇㄴㅏㅁㄱㅜ ", "서울시강남구|18" 파이프라인( | ) 기준으로 텍스트박스에 보여질(서울시강남구)와 초중종성의 length를 넣었습니다. 초성+중성+종성을 다시 합쳐도 "서울시강남구"가 보여질겁니다. ( 귀찮아서 dictionary에 담음 ) // 주소파일에서 읽어온 데이터 Dictionary items = new Dictionary(); private void button2_Click(object sender, EventArgs e) { if(textBox1.Text.Length < 1) { MessageBox.Show("2글자 이상입력"); textBox1.Focus(); return; } string tb = divid..
-
한글 일치율 비교#3. LevenshteinDistancec# Winform 개발/글자비교 2021. 6. 22. 16:24
Levenshtein Distance는 두 개의 문자열 A, B가 주어졌을 때 두 문자열이 얼마나 유사한 지를 알아낼 수 있는 알고리즘입니다 Compute 함수에서는 같으면 0, 다르면 distance를 리턴하기 때문에, 일치율은 이렇게 계산되겠네요. 일치율 = ( 문자열의 길이 - distance ) / 문자열의 길이 * 100 static class LevenshteinDistance { /// /// Compute the distance between two strings. /// public static int Compute(string s, string t) { int n = s.Length; int m = t.Length; int[,] d = new int[n + 1, m + 1]; // St..
-
한글 일치율 비교#2. 한글분리 (초성,중성,종성)c# Winform 개발/글자비교 2021. 6. 22. 16:19
한글 비교할때 완성된 한글자씩 비교하면 아무래도 일치율이 디테일해 지지 않아서 ( "노원구 중계동"을 검색하면 "노원구 중계동" 과 "노원구 상계동" 은 같은 일치율을 보임) 초성,중성,종성으로 분리시켰습니다. divideString("파덜") -> "ㅍㅏ ㄷㅓㄹ" public static string chosung = "ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ"; public static string jungsung = "ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ"; public static string jongsung = " ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ"; // 받침이 없을 수 있으므로 제일 첫부분은 띄워줘야 합니다. public static ushort UnicodeHangeulBase..