cndict 0.6.2 → 0.6.3
raw patch · 3 files changed
+43/−43 lines, 3 filesdep −file-embedPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: file-embed
API changes (from Hackage documentation)
- Data.Chinese.CCDict: entryDefinition :: Entry -> [[Text]]
- Data.Chinese.CCDict: entryPinyin :: Entry -> [Text]
- Data.Chinese.CCDict: entrySimplified :: Entry -> !Text
- Data.Chinese.CCDict: entryTraditional :: Entry -> !Text
- Data.Chinese.CCDict: instance Eq Entry
- Data.Chinese.CCDict: instance Eq Token
- Data.Chinese.CCDict: instance Ord Entry
- Data.Chinese.CCDict: instance Ord Token
- Data.Chinese.CCDict: instance Read Entry
- Data.Chinese.CCDict: instance Read Token
- Data.Chinese.CCDict: instance Show CCTrieEntry
- Data.Chinese.CCDict: instance Show Entry
- Data.Chinese.CCDict: instance Show Token
- Data.Chinese.Frequency: instance Show SubtlexEntry
- Data.Chinese.Frequency: subtlexIndex :: SubtlexEntry -> !Int
- Data.Chinese.Frequency: subtlexWCount :: SubtlexEntry -> !Int
- Data.Chinese.Frequency: subtlexWMillion :: SubtlexEntry -> !Double
- Data.Chinese.Frequency: subtlexWord :: SubtlexEntry -> !Text
+ Data.Chinese.CCDict: [entryDefinition] :: Entry -> [[Text]]
+ Data.Chinese.CCDict: [entryPinyin] :: Entry -> [Text]
+ Data.Chinese.CCDict: [entrySimplified] :: Entry -> !Text
+ Data.Chinese.CCDict: [entryTraditional] :: Entry -> !Text
+ Data.Chinese.CCDict: instance GHC.Classes.Eq Data.Chinese.CCDict.Entry
+ Data.Chinese.CCDict: instance GHC.Classes.Eq Data.Chinese.CCDict.Token
+ Data.Chinese.CCDict: instance GHC.Classes.Ord Data.Chinese.CCDict.Entry
+ Data.Chinese.CCDict: instance GHC.Classes.Ord Data.Chinese.CCDict.Token
+ Data.Chinese.CCDict: instance GHC.Read.Read Data.Chinese.CCDict.Entry
+ Data.Chinese.CCDict: instance GHC.Read.Read Data.Chinese.CCDict.Token
+ Data.Chinese.CCDict: instance GHC.Show.Show Data.Chinese.CCDict.CCTrieEntry
+ Data.Chinese.CCDict: instance GHC.Show.Show Data.Chinese.CCDict.Entry
+ Data.Chinese.CCDict: instance GHC.Show.Show Data.Chinese.CCDict.Token
+ Data.Chinese.Frequency: [subtlexIndex] :: SubtlexEntry -> !Int
+ Data.Chinese.Frequency: [subtlexWCount] :: SubtlexEntry -> !Int
+ Data.Chinese.Frequency: [subtlexWMillion] :: SubtlexEntry -> !Double
+ Data.Chinese.Frequency: [subtlexWord] :: SubtlexEntry -> !Text
+ Data.Chinese.Frequency: instance GHC.Show.Show Data.Chinese.Frequency.SubtlexEntry
+ Paths_cndict: getBinDir :: IO FilePath
+ Paths_cndict: getDataDir :: IO FilePath
+ Paths_cndict: getDataFileName :: FilePath -> IO FilePath
+ Paths_cndict: getLibDir :: IO FilePath
+ Paths_cndict: getLibexecDir :: IO FilePath
+ Paths_cndict: getSysconfDir :: IO FilePath
+ Paths_cndict: version :: Version
Files
- cndict.cabal +1/−2
- src/Data/Chinese/CCDict.hs +30/−27
- src/Data/Chinese/Frequency.hs +12/−14
cndict.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: cndict-version: 0.6.2+version: 0.6.3 synopsis: Chinese/Mandarin <-> English dictionary, Chinese lexer. -- description: license: PublicDomain@@ -28,7 +28,6 @@ -- other-modules: build-depends: base == 4.*, text >= 0.11.0.0,- file-embed >= 0.0.4.9, containers >= 0.5.0.0, vector >= 0.10.0.0, bytestring >= 0.9.0.0,
src/Data/Chinese/CCDict.hs view
@@ -1,7 +1,7 @@+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE CPP #-}-{-# LANGUAGE BangPatterns #-} -- | Simplified Chinese <-> English dictionary with pinyin phonetics. module Data.Chinese.CCDict ( CCDict@@ -16,27 +16,27 @@ , toSimplified ) where +import qualified Data.ByteString as B import Data.Char-import Data.FileEmbed-import Data.List (foldl', nub, maximumBy)-import Data.Ord-import Data.IntMap (IntMap)-import qualified Data.IntMap.Strict as IntMap-import qualified Data.Map.Strict as M+import Data.IntMap (IntMap)+import qualified Data.IntMap.Strict as IntMap+import Data.List (foldl', maximumBy, nub) import Data.Maybe-import Data.Text (Text)-import qualified Data.Text as T-import qualified Data.Text.Encoding as T-import qualified Data.Text.IO as T--import Prelude hiding (lookup)+import Data.Ord+import Data.Text (Text)+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.IO as T+import Paths_cndict+import Prelude hiding (lookup)+import System.IO.Unsafe (unsafePerformIO) -import Data.Tree+import Data.Tree -import Data.Chinese.Pinyin import qualified Data.Chinese.Frequency as Frequency+import Data.Chinese.Pinyin -import Data.Chinese.Frequency hiding (lookup)+import Data.Chinese.Frequency hiding (lookup) -------------------------------------------------- -- Dictionary@@ -221,21 +221,21 @@ cases = [ ("多工作", ["多","工作"]) , ("有电话", ["有","电话"])- , ("回电话", ["回","电话"])- , ("不知道", ["不","知道"])- , ("定时间", ["定","时间"])- , ("这位子", ["这","位子"])- , ("十分钟", ["十","分钟"])- , ("有电梯", ["有","电梯"])+ , ("回电话", ["回","电话"])+ , ("不知道", ["不","知道"])+ , ("定时间", ["定","时间"])+ , ("这位子", ["这","位子"])+ , ("十分钟", ["十","分钟"])+ , ("有电梯", ["有","电梯"]) , ("中午前", ["中午","前"]) -- , ("得很", ["得","很"]) -- , ("不想", ["不","想"]) -- , ("那是", ["那","是"]) , ("外套", ["外套"]) , ("家中餐馆", ["家","中餐馆"])- , ("后生活", ["后","生活"])- , ("不愿意", ["不","愿意"])- , ("点出发", ["点","出发"])+ , ("后生活", ["后","生活"])+ , ("不愿意", ["不","愿意"])+ , ("点出发", ["点","出发"]) , ("老婆婆", ["老","婆婆"]) , ("不会跳舞", ["不会","跳舞"]) , ("穿上外套", ["穿上","外套"])@@ -443,7 +443,10 @@ ccDict :: CCDict ccDict = parse $ T.decodeUtf8 raw where- raw = $(embedFile "data/cedict_1_0_ts_utf-8_mdbg.txt")+ -- raw = $(embedFile "data/cedict_1_0_ts_utf-8_mdbg.txt")+ raw = unsafePerformIO $ do+ path <- getDataFileName "data/cedict_1_0_ts_utf-8_mdbg.txt"+ B.readFile path -- ccDict' :: CCDict -- ccDict' = decode (BL.fromStrict raw)
src/Data/Chinese/Frequency.hs view
@@ -7,21 +7,15 @@ , Data.Chinese.Frequency.lookup ) where --- import Control.Applicative-import qualified Data.ByteString.Lazy as L-import qualified Data.ByteString as B+import qualified Data.ByteString as B import qualified Data.ByteString.Char8 as B8--- import Data.Csv as Csv-import Data.FileEmbed-import Data.Map (Map)-import qualified Data.Map.Strict as M-import Data.Text (Text)+import Data.Map (Map)+import qualified Data.Map.Strict as M+import Data.Text (Text)+import qualified Data.Text as T import Data.Text.Encoding-import qualified Data.Text as T--- import Data.Vector (Vector)--- import qualified Data.Vector as V---- import Data.Chinese.Pinyin+import Paths_cndict+import System.IO.Unsafe (unsafePerformIO) type SubtlexMap = Map B.ByteString RawEntry @@ -113,7 +107,11 @@ subtlex = mkSubtlexMap $ rows where- utfData = $(embedFile "data/SUBTLEX_CH_131210_CE.utf8")+ utfData = unsafePerformIO $ do+ path <- getDataFileName "data/SUBTLEX_CH_131210_CE.utf8"+ B.readFile path+ -- utfData = $(embedFile "data/SUBTLEX_CH_131210_CE.utf8")+ -- utfData = B.empty rows = drop 1 (B.split 0xa utfData) -- subtlex :: SubtlexMap