Code Monkey home page Code Monkey logo

hanspell's People

Contributors

9beach avatar dependabot[bot] avatar hrcho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

hanspell's Issues

[question] 서버접속오류와 typeerror가 발생합니다.

안녕하세요, nodejs+react로 hanspell을 사용해보는 중입니다.
README 예시대로 따라 해보니 다음&부산대 서비스 모두 서버접속 에러와 타입 에러가 발생하는데요,
혹시 어떤 부분이 잘못되었을까요?

실행 코드와 콘솔에 찍히는 에러는 다음과 같습니다.


import React, {useState, useEffect} from 'react';

const hanspell = require('hanspell');

function Main() {
    const [sentence, setSentence] = useState('리랜드는 얼굴 골격이 굵은게,');
    const end = () => {
        console.log("// check ends");
    };
    const error = (error) => {
        console.error("// hanspell => " + error);
    };

    const checkGrammarD = () => {
        console.log('checkGrammarD', sentence)
        let results = hanspell.spellCheckByDAUM(sentence ? sentence : "", 10000, 'return', end, error);
        console.log('results Daum =>', results);
    };

    const checkGrammarP = () => {
        let results = hanspell.spellCheckByPNU(sentence, 10000, 'return', end, error);
        console.log('results PNU =>',results)

    };

    return (
        <>
            <div>
                <h1>한국어 맞춤법 검사기 lite</h1>
                <h2>Matu Pitu(machu picchu)</h2>
            </div>
            <div>
                <p>원문 : {sentence}</p>
                <button onClick={() => setSentence(checkGrammarD)}>Daum 서비스로 검사</button>
                <button onClick={() => setSentence(checkGrammarP)}>부산대학교 서비스로 검사</button>
            </div>
        </>
    );
}

export default Main;

image

혹시 request 보내는 URL이 잘못되었나 생각되어 접속해보니 부산대 URL은
const PUSAN_UNIV_URL = 'http://speller.cs.pusan.ac.kr/results';
빈 에러페이지가 나오고 /results를 빼고 접속해보니 서비스페이지가 나오더라고요.
하지만 다음서비스 URL은 제대로 접속이 되는 거로 보아 잘못된 URL로 인한 이슈는 아닌 것 같습니다.
제가 사용법과 다르게 사용한 부분이 있을지 답변해주시면 감사하겠습니다.

daum api 호출 제한 관련 질문드립니다

안녕하세요, daum 맞춤법 서비스 이용 중 문의드리고 싶은 것이 있습니다!

책 한 권 분량의 text파일 맞춤법을 교정하고 싶어서, 한 문단씩 계속 다음 api 호출하면서 교정을 했는데요,

"-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다."
위와 같은 오류 발생 시 무한대로 retry 하도록 코드를 짰습니다
그런데 어느 시점이 되니까 아예 다음 api 사용이 막혀버려서요..!

혹시 분당 혹은 일당 api 호출수 제한이 있나요?
얼마 간의 시간이 지나면 api 호출이 풀릴 수 있을지,
이런 경우 제한을 회피할 수 있는 좋은 솔루션이 있을지 조언 부탁드립니다!! ㅠㅠ

라이선스 구매 문의

안녕하세요? 저희는 차량 문제 해결 상담 서비스 닥터차를 운영하고 있는데요.
상담사 분들이 연령대가 높아서 고객 분들에게 맞춤법이 다소 안 맞는 답변을 드리고 있어 이를 개선하고자 합니다.
희망하는 사용 형태는 크롬 확장 프로그램으로 만들어서 Grammly 프로그램과 같이 상담사 웹 콘솔에서 답변을 작성하면 일정 주기마다 답변에 대한 맞춤법 검사를 실행할 수 있도록 하고 싶은데요.

크롬 확장 프로그램 형태로도 개발하실 계획이 있으신지 궁금하구요.
그렇지 않다고 하시더라도 본 깃허브의 라이센스를 획득하여 저희 회사 내에서 자체적으로 크롬 확장 프로그램을 개발하는 형태도 문제는 없겠습니다.

혹시 본 깃허브의 기업용 라이센스를 구매하고자 한다면 여기에 남기면 될지요?

node.js 프로젝트에서 spellCheckByDAUM 결과를 홈페이지에 출력하는 방법

안녕하세요. 현재 작은 Node.js 프로젝트를 하나 진행하고 있는데 간단한 온라인 맞춤법 검사기를 만들어보려고 합니다.

다름이 아니라 spellCheckByDAUM 함수에서 check 함수에 다른 variable을 전달할 수가 없어

제 수준에선 해당 프로젝트의 파일 수정 없이

어떻게 해당 결과를 다른 변수에 저장하고 웹 페이지에 출력할 수 있는지 좋은 방법이 떠오르지가 않습니다.

좋은 방법이 있다면 제시해 주시면 감사하겠습니다.

감사합니다!

UI 버전 아이디어 정리

고철, 읽고 의견 주기 바란다.

참고할 만한 맞춤법 검사기는, 기본 웹 컨트롤인 textarea의 맞춤법 검사 기능과 VS Code 등 IDE의 lint 플러그인이라고 생각한다. 둘 다 실시간으로 문제가 있는 단어에 밑줄이 생긴다. textarea의 경우, 문제 단어를 클릭하면 추천 단어가 있으면 팝업으로 보여준 뒤 사용자가 선택하면 해당 단어가 변경되며, lint 플러그인은 팝업으로 설명도 뜬다.

우리는 실시간으로 검색하기 힘들어서 교정 버튼을 누를 때마다 부산대/다음 서버에서 검색한 뒤 로컬 디비를 갱신하면 될 것 같다. 교정한 토큰과 무시한 토큰을 모두 로컬에 저장하고, 맞춤법을 틀린 복수개의 단어를 하나의 키로 리버스 인덱스를 구성할 필요가 있다.

기존의 간단한 한글 맞춤법 검사 앱은, 교정 모드에서는 편집이 금지되며 의심 단어만 메뉴를 통해 허용하는 경우가 많다. 다른 문장도 고치고 싶을 때가 많아서 나는 이렇게 모드를 구분하는 방식을 좋아하지 않는다.

일렉트론 기반으로 작성하되, 편집기 웹 컨트롤로 draft.js가 좋아 보이니 이것과 hanspell 이용해서 아래의 순서대로 처리하려 한다.

  1. draft.js에서 문장을 편집한다. 로컬에서 디비 검색 결과에 걸리면 실시간으로 빨간 점선을 긋는다.
  2. 교정 버튼을 누르면 hanspell 라이브러리로 교정된 문장과 정보를 가져온다. 교정 버튼 누르면 그때 교정한다고 생각하기 보다는 교정 버튼은 주어진 문장을 통해 로컬 디비를 갱신하기 위해서라고 생각하는 편이 자연스럽다.
  3. 기존 문장에서 교정해야 할 부분을 링크로 처리하고 링크의 스타일은 빨간색 점선으로 지정한다. 참고로, draft.js가 문장에 링크 걸기 기능을 제공한다.
  4. 링크 클릭 핸들러는 추천 단어와 설명을 보여준다.
  5. 추천 단어 클릭 핸들러는 문장을 수정한 뒤, 다시 위의 3단계로 돌아간다. 즉 1~3단계가 사용자에 의해 반복되며 4, 5는 콜백 함수이다.

추가로 생각할 수 있는 일은, lint나 Vim 플러그인을 만드는 것과, 위의 맞춤법 검사기를 작가를 위한 편집기 수준으로 개선하는 일이다.

다음의 세부 기능을 생각할 수 있다.

  • 검색 결과를 로컬 디비에 누적하면서 이를 통한 실시간 교정
  • 무시한 토큰 기억
  • 무시한 토큰 리스트 편집
  • 부산대/다음 서버 선택
  • 전체 문장에서 수정/해당 단어만 수정
  • draft.js 기능 중 노출해야 할 것
    • 찾기
    • 바꾸기
    • 리치 텍스트 기능 불필요
    • 이 밖에 또 무엇이 있을까?
  • 파일로 저장하기, 파일 버전 관리 등은 불필요
  • 부산대 결과 후처리 필요 (불필요하게 긴 결과를 보여줘서 리버스 인덱스 구성하기 전에 간단한 처리를 해야 한다. 가령 이밖에 또 무엇이이 밖에 또 무엇이로 고치라고 한다. 이 밖에만 저장하면 된다.) -> 엄밀한 논리적 검증 필요
  • 맞춤법에 걸리지 않았는데 사용자가 수정한 단어 로컬 디비에 추가 (읽어보고읽고로 고친 경우 등에 대해 사용자가 직접 추가하기 기능 제공)

데이터 파싱을 위한 풀리퀘스트

안녕하세요? hanspell 사용 관련하여 이슈 남깁니다.

함수 결과를 async/await 동기로 사용하는 중입니다.

해당 모듈의 함수를 약간 수정 했는데 풀리퀘스트로 보내도 될까요?

[question] windows환경에서 파일 맞춤법 교정 방법

부산대 맞춤법 검사를 위하여 linux의 경우에는 아래와 같이 작성하면 되는것 같습니다.

$ cat text-file | hanspell-cli -p 2 > result.txt

그럼 windows의 경우에는 아래와 같이 작성했을 때, 왜 작동하지 않을까요?

  • text-file은 utf8로 인코딩 되어있습니다.

혹시 시간이 오래 걸리는 것인지 궁금합니다.

또한, windows에서도 hanspell-cli -p 2 와 같이 로그를 생략하는 방법이 있는지 궁금합니다.

C:\> type text-file | hanspell-cli -p > result.txt

감사합니다.

입력문의 맨 앞 단어의 철자가 틀려도 수정되지 않습니다.

다음과 같이 실행됩니다.
image

escaped = '(?<=[^ㄱ-ㅎㅏ-ㅣ가-힣])' + escaped + '(?=[^ㄱ-ㅎㅏ-ㅣ가-힣])';

문장에서 바꿀단어를 찾아주는 위 정규식이 입력문의 맨앞에서 동작하지 않는거 같습니다. 이것을
escaped = '(^|(?<=[^ㄱ-ㅎㅏ-ㅣ가-힣]))' + escaped + '((?=[^ㄱ-ㅎㅏ-ㅣ가-힣])|$)';
과 같이 변경하면 되지 않을까 싶습니다. 뒤에 정규식은 바꾸지 않아도 입력문의 맨 뒷 단어에 대해 동작을 하지만, 문법적으로는 넣어주는게 맞지 않나 싶습니다.

[question] 서버 접속 오류

안녕하세요!

hanspell로 긴 문단 교정을 시도할때 교정이 되다가 서버 접속 오류로 인해 몇 오타를 뛰어넘고, 다시 교정되는 문제가 생깁니다.
다음, 부산대 모두 이런 문제가 발생하고, 윈도우/ 맥 os 둘 다 테스트 해보았습니다.
짧은 문단은 잘 교정이 되지만, 몇달전엔 긴 문단 교정에도 편리하게 사용했어서 확인 부탁드리고 싶습니다.
감사합니다!

-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다.
-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다.
-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다.
-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다.
-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다.
“으악이라니, -> “으악이라니,
“…제발 -> “… 제발
“…뭐요?” -> “… 뭐요?”
-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다.
펴낸곳│나인 -> 펴낸 곳│나인
“우라지게 -> “우라지게
왔….” -> 왔….”
뒷걸음질 치고 -> 뒷걸음질치고
“실례합니다아.” -> “실례합니다.”
-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다.
-- 한스펠 오류: 다음 서버의 접속 오류로 일부 문장 교정에 실패했습니다.
온더락 -> 온 더 락
…원래 -> … 원래

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.