OSDN Git Service

平仮名を辞書に含めないようになった。
authoryoffy <yoffy>
Mon, 1 Nov 2004 09:51:57 +0000 (09:51 +0000)
committeryoffy <yoffy>
Mon, 1 Nov 2004 09:51:57 +0000 (09:51 +0000)
(ソースの先頭にある GIKO_BAYESIAN_NO_HIRAGANA_DIC のコメントアウトで復活可能)

GikoBayesian.pas

index a63402d..ae587a0 100644 (file)
@@ -4,9 +4,12 @@ unit GikoBayesian;
 \file          GikoBayesian.pas
 \brief \83x\83C\83W\83A\83\93\83t\83B\83\8b\83^
 
-$Id: GikoBayesian.pas,v 1.13 2004/11/01 05:18:21 yoffy Exp $
+$Id: GikoBayesian.pas,v 1.14 2004/11/01 09:51:57 yoffy Exp $
 }
 
+//! \95½\89¼\96¼\82ð\8e«\8f\91\82É\8aÜ\82ß\82È\82¢
+{$DEFINE GIKO_BAYESIAN_NO_HIRAGANA_DIC}
+
 interface
 
 //==================================================
@@ -483,6 +486,12 @@ var
        const
                _delim : string = #10;
        begin
+{$IFDEF GIKO_BAYESIAN_NO_HIRAGANA_DIC}
+               if mode = ModeWHira then begin
+                       Result := '';
+                       Exit;
+               end;
+{$ENDIF}
                if Ord( _mode ) >= Ord( ModeWGraph ) then begin
                        // \93ú\96{\8cê
                        // \83X\83y\81[\83X\82ð\8bl\82ß\82é
@@ -586,8 +595,10 @@ begin
        words := TStringList.Create;
        try
                mode := ModeWhite;
+{$IFNDEF GIKO_BAYESIAN_NO_HIRAGANA_DIC}
                wHiraDelimiter.Text := WHIRA_DELIMITER;
                wHiraFinalDelimiter.Text := WHIRA_FINAL_DELIMITER;
+{$ENDIF}
                wKanjiDelimiter.Text := WKANJI_DELIMITER;
                p                       := PChar( text );
                tail    := p + Length( text );
@@ -653,7 +664,9 @@ begin
                end;    // while
 
                if mode <> ModeWhite then begin
-                       aWord := Copy( last, 0, p - last );
+                       SetLength( aWord, p - last );
+                       CopyMemory( PChar( aWord ), last, p - last );
+
                        words.Text := changeMode( aWord, mode );
 
                        // \92P\8cê\93o\98^