2010-02-17 4 views
3

.doc 또는 .docx 파일의 문자 및/또는 단어를 자동으로 계산하는 신뢰할 수있는 방법은 무엇입니까?.doc 파일의 문자 수를 안정적으로 얻음

실제 요구 사항은 합리적으로 정확하고 합리적으로 신뢰할 수 있습니다.
라틴어 스크립트가 아닌 다른 문서를 사용해야하므로 대부분의 경우 문자 수를 세면 충분합니다.
숫자가 반드시 Word 's와 일치 할 필요는 없지만 더 가까울수록 좋습니다.
.doc 파일을 생성 할 수있는 엄청나게 다양한 앱이 있기 때문에 아무 것도 계산하지 않아도되지만이 경우는 캐치 할 수 있어야 카운트가 정확하지 않을 수 있습니다. 다른 모든 경우의 경우, 카운트는 적어도 99 %의 정확도, 적어도 99 %의 정확도 여야합니다.

관련 기술에 대해서는 공개되어 있지만 * NIX 명령 줄에서 실행할 수있는 것이 좋습니다.

합리적인 해결책이 있습니까?

+0

wvSummary (http://linux.die.net/man/1/wvsummary)는 Word (또는 적어도 Word 메타 데이터를 저장하는 프로그램)에 의해 마지막으로 저장되는 것으로 간주 할 수 있습니다. –

+0

@Matthew 유감스럽게도 파일 자체의 메타 데이터에 의존하는 것이 너무 신뢰할 수없는 것입니다. :) – deceze

+0

당신은 어딘가에 귀하의 네트워크에있는 Windows 컴퓨터에 단어를 설치하고 정확한 카운트를 얻기 위해 (COM 또는 VBA를 통해) Word 자체를 사용할 수 있습니까? –

답변

3

일부 리눅스 단어 - 텍스트 변환기의 경우 link입니다.

예를 들어, 당신은 계산을 할

antiword file.doc | wc 

를 사용할 수 있습니다.

편집 :

link 당신이 "화장실"를 사용하여 단어를 계산 한 후 .txt로하고하는 .DOCX 형식을 변환하는 데 사용할 수, AbiWord는 명령 줄 인터페이스를 가지고 있음을 보여준다. AbiWord가 docx 형식을 지원합니까?

+0

앤티 워드는 감사합니다. 그래도 .docx 파일에 대한 모든 솔루션? – deceze

+0

AbiWord가 갈 길일지도 모릅니다. – beny23

0

Microsoft는 Office 이진 파일 형식으로 specification을 게시했습니다. .DOC 파일을 파싱하는 것은 사소한 것처럼 보이지 않지만 약간의주의를 기울여야 신뢰할 수 있고 반복 가능한 결과를 얻을 수 있어야합니다. Word가 보여주는 것과 얼마나 밀접하게 연관되어 있는지 전혀 알지 못합니다. 아마도 "단어"를 정의하는 방법에 따라 달라질 것입니다 (예 : 숫자 그룹을 "단어"로 간주할지 여부). . 아마도 Word에서 어떻게 그런 상황을 다루는 지 파악하는 데 많은 시간이 걸리지 않으므로 긴밀한 일치를 얻는 것이 대단히 어렵지는 않습니다.

+0

나는 내 자신의 .doc 파서를 쓰려고하지 않고있다. http://www.joelonsoftware.com/items/2008/02/19.html :-) – deceze

0

솔루션으로 온라인 응용 프로그램을 고려한다면 해결책이 있습니다.
이 사이트는 두 단어와 문자 수를 제공합니다 (디자인에 대한) 그래서 꽤하지 : 내가 거기에 한계가 있으며, 단지/복사의 내용을 붙여 넣을 문제가되지 않습니다 생각하지 않는다 http://allworldphone.com/count-words-characters.htm

을 귀하의 문서를 해당 텍스트 영역에 넣고 그 결과를보십시오.

100 % 또는 99 %의 정확도와 관련하여 몇 가지 (즉, 20-50 단어)로 계산할 수 있습니다.

이 정보가 도움이되기를 바랍니다. 감사합니다. Chris

+2

주된 문제는 단어를 열지 않고 일반 텍스트를 가져 오는 것입니다 (이는 deceze가 잘라내어 내용을 붙여 넣기 위해해야 ​​할 것입니다). – beny23

1

Mac OS X은 시스템 프레임 워크에 내장 된 워드 파일을 읽는 기능을 지원하므로 쉽게 사용할 수 있습니다. MacRuby 샘플 :

NSSpellChecker.sharedSpellChecker.countWordsInString(NSAttributedString.alloc.initWithURL(fileURL, documentAttributes:nil), language:nil) 

더 이식 -이 DOCX에 대한 지원을 제공하지만 - 당신은 단순히 Antiword을 얻고 antiword | wc -w을 할 수 있습니다.

+0

프로덕션에서 사용하기에 아마도 해결책 이겠지만 (Linux 서버). 나는 그것을 조사 할 것이다 ... – deceze