sefasfawef
536
2019-07-19 18:26:15
4
835

실제로 쓰이지않는 한글 "뒒" 이런 문자를 필터링하고 싶습니다


뒑 뷄 같은 문자를 필터링하고 싶은데

초보자인 저는 전혀 방법이 떠오르질 않습니다..

어떻게해야할까요?

저런 문자를 노가다로 수집해서 대조하는 방법밖에 없을까요?


0
  • 답변 4

  • 파이썬데이터분석이다..
    82
    2019-07-19 18:31:59

    웹 데이터 베이스에 쌓이는 문자를 필터링 하고자 하시는건가요?

    어떤걸 위해서 필터링하시는지 알아야 도움이될거 같은데

    그냥 방금 든 아이디어는 데이터 베이스에 존재하는 데이터들 다 긁어 모아서 퍼센티지를 먹인뒤 제일 많이 쓰이는 단어와 아닌 단어의 경계점인 %를 찾아서 그 밑인 퍼센트는 필터링되게하면 좋을거같아요 예를들어 

    가:84%, 나 :50%, 다 : 20% .........................라:7%, 뛟 : 1%, 뛻 : 0.1% 이면 "뛟"  1%밑은 필터링 되게  경계점(%)을 찾는건 데이터를 보고 본인이 상황에 맞게 주시면 될거같고


    근데 단점은 필터링 하고자 할때마다 저걸 다돌려야하니.. 

  • INNKyeong
    2019-07-19 21:38:25 작성 2019-07-19 21:40:34 수정됨

    자음이 연속적으로 3개 오는 경우를 찾아서

    그 앞과 뒤가 모음일 경우 (예 : ㅔ ㄹ ㄱ ㅁ ㅏ)


    연속된 3개의 자음의 앞에 오는 모음이

    겹받침과 함께 쓰일 수 없는 모음인 경우 필터링

     

    연속된 3개의 자음 중 앞 2개의 자음이

    겹받침으로 조합될 수 없는 자음인 경우 필터링


    하면 되지 않을까요?

  • yeori
    2k
    2019-07-19 21:56:03

    같은 단어를 euc-kr로 디코딩해서 바이트를 보면 63(물음표) 하나만 나옵니다.

            String buelk = "뷁";
            byte [] euckr = buelk.getBytes("euc-kr");
            System.out.println(Arrays.toString(euckr)); // [63] 나옴

    나무 위키를 보면 [ 링크 ]

    유니코드에 있는 한글이 11172글자이니까

    1. 각각의 글자하나씩마다 euc-kr로 디코딩해서 char [] 배열을 얻어낸 후

    2. 배열의 길이가 1이고 값이 63(물음표)이면

    3. 일반적인 글자가 안님


    ... 이라고 판단할 수 있지 않을까 싶습니다.

    그러한 글자들만 HashSet 에 모아두면 N개의 입력에 대해서 그럭저럭 합리적인 시간 내에 판별할 수 있을듯 합니다.


    첫번째 글자인 '가'의 유니코드값은 44032이고, 마지막 글자인 '힣'은 55203입니다.

  • rezigrene
    1k
    2019-07-20 07:50:30

    선인들의 지혜가담긴 euc-kr 을쓰시면 됩니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.