임의의 문서 (.txt)와 그 수에 고유 한 단어를 찾기위한 지정이 주어졌습니다. 나는 사전도 받았고, 문서에있는 단어는 사전에 있다면 유효합니다. 할당은 첨부 된 데이터베이스와 함께 mysql 커맨드 라인을 사용하여이 문제를 해결하는 것이다. 쉘 스크립팅, 프로그래밍이 필요 없습니다. 그냥 mysql 명령.임의의 문서를 mysql으로 구문 분석하는 방법
사전을위한 테이블을 만들고 dictionary.txt 파일의 단어를 LOAD DATA INFILE 'dictionary.txt' REPLACE INTO TABLE 'words' (word);
으로로드했습니다. 레코드 당 한 단어 씩 성공했습니다. 그러나 문서 파일에는 실제 구분 기호가 없습니다. 줄 단위로 읽을 수도 있지만 정규식을 사용하여 각 줄의 단어와 사전의 단어를 비교하는 방법은 무엇입니까? mysql이 필드 내에서 일치하는 단어 대신 전체 필드 내용을 반환하지 않습니까?
어떤 도움도 좋은 것입니다.
EDIT : SQLFiddle은 현재 다운 된 것 같습니다. 여기에 지금까지 한 일이다 :
CREATE TABLE dictionary (word VARCHAR(50) NOT NULL UNIQUE, freq INT DEFAULT 0);
LOAD DATA INFILE 'dictionary.txt' REPLACE INTO TABLE dictionary (word);
SELECT * FROM dictionary;
수율 :
+------------------------------+------+
| word | freq |
+------------------------------+------+
| a | 0 |
| aa | 0 |
| aaa | 0 |
| aaas | 0 |
| aah | 0 |
| aal | 0 |
| aalii | 0 |
| aam | 0 |
| aani | 0 |
| aardvark | 0 |
| aardvarks | 0 |
| aardwolf | 0 |
| aardwolves | 0 |
| aargh | 0 |
| aarhus | 0 |
| aaron | 0 |
.
.
.
.
| zymotize | 0 |
| zymotoxic | 0 |
| zymurgy | 0 |
| zyrenian | 0 |
| zyrian | 0 |
| zyryan | 0 |
| zythem | 0 |
| zythia | 0 |
| zythum | 0 |
| zyzomys | 0 |
| zyzzogeton | 0 |
+------------------------------+------+
300248 rows in set (0.29 sec)
하는 dictionary.txt 파일은 한 줄에 하나의 단어입니다. (여기에는 빈도 카운트가 필요하지 않음).
그 다음에는 임의의 텍스트 문서, 예를 들어 http://www.usconstitution.net/const.txt을 가져 와서 '문서의 모든 고유 단어 찾기'를 검색 할 수있는 '문서'와 같은 mysql 테이블을 읽고 싶습니다. .word 여기서 document.word는 dictionary.word에 있습니다. 각각의 유일한 단어와 그 수를 돌려 준다 '.
LOAD DATA INFILE 'const.txt' REPLACE INTO TABLE document LINES TERMINATED BY ' ' (word);
으로 파일을 읽으려고했으나 공백이 아닌 공백으로 구분 기호가 필요합니다. 예를 들어, const.txt의 각 행은 \n
으로 끝나고 각 행의 마지막 단어는 \ nanotherword 단어로 테이블에 배치됩니다. 나는 구두점 (단어, 단어, 단어, 단어 등)으로 끝나는 단어에 대해 지금 당장 걱정하지 않아도됩니다.
예 : SELECT * FROM DOCUMENT WHERE word REGEXP '\n';
수율 :
| http://www.gutenberg.net
This |
| Gutenberg-tm,
including |
| Literary
Archive |
| to
subscribe |
| eBooks.
|
+---------------------------------------------+
3356 rows in set (0.00 sec)
LINES TERMINATED BY ''
절에 대한 정규식 구분 기호를 사용하는 방법이 있나요? 이상적으로, 내가 그렇게 공백 (\t
, \n
, 등)에 대한
\s
을 사용하고 싶습니다 그 http://www.gutenberg.net
, This
, Gutenberg-tm,
, including
, Literary
, Archive
, to
, subscribe
, eBooks.
은 모두 개별 레코드입니다.
어떻게 파일이 생겼는데? mysql의 regex flavor는 PCRE 나 다른 맛과 같이 강력하지 않으므로 유효한 케이스를 실제로 볼 수는 없다는 것을주의하십시오. – HamZa
샘플 데이터를 제공 할 수 있습니까? (두 파일 모두에서) 원하는 결과가 나타 납니까? –
'공백'을 구분 기호로 사용할 수 있습니까? – Strawberry