當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R aspell 拚寫檢查接口


R語言 aspell 位於 utils 包(package)。

說明

通過 Aspell、Hunspell 或 Ispell 對給定文件進行拚寫檢查。

用法

aspell(files, filter, control = list(), encoding = "unknown",
       program = NULL, dictionaries = character())

參數

files

包含要檢查的文件名稱的字符向量。

filter

用於在拚寫檢查之前處理文件的可選過濾器,以函數形式給出(使用形式 ifileencoding ),或指定內置過濾器的字符串,或具有內置過濾器名稱的列表過濾器和要傳遞給它的附加參數。請參閱可用過濾器的詳細信息。如果缺少或NULL,則不執行過濾。

control

拚寫檢查器的控製選項的列表或字符向量。

encoding

文件的編碼。根據需要回收。

program

給出要使用的拚寫檢查程序的名稱(如果在係統路徑上)或完整路徑的字符串,或NULL(默認)。默認情況下,係統路徑會搜索 aspellhunspellispell (按順序),並使用找到的第一個。

dictionaries

要使用的其他 R 級別字典的名稱或文件路徑的字符向量。沒有路徑分隔符的元素指定 R 係統字典(在子目錄‘分享/字典R 主目錄的’)。文件擴展名(目前隻有‘.rds’)可以省略。

細節

使用的拚寫檢查程序必須支持通過命令行選項激活的所謂 Ispell 管道接口-A。除了程序之外,還需要提供合適的詞典。看http://aspell.net,https://hunspell.github.io/https://www.cs.hmc.edu/~geoff/ispell.html,分別用於獲取 Aspell、Hunspell 和(國際)Ispell 程序和詞典。

在 Windows 上,Aspell 可通過 MSYS2 獲得。應使用非 Cygwin 版本,例如包mingw-w64-x86_64-aspell。針對 Cygwin 運行時(包 aspell )構建的版本需要文件和 Unix-style 路徑中的 Unix 行結尾,這與 aspell() 不兼容。

目前可用的內置過濾器有"Rd"(對應RdTextFilter)、"Sweave"(對應SweaveTeXFilter)、"R""pot""dcf""md"

過濾器 "R" 用於 R 代碼,並在調用 messagewarningstoppackageStartupMessagegettextgettextfngettext (未命名)中提取消息字符串常量。字符串常量對於前五個,fmtmsg1 /msg2 字符串常量分別用於後兩個)。

篩選"pot"用於消息字符串目錄‘。鍋’文件。雙方都有爭議ignore允許為要忽略拚寫檢查的消息字符串部分提供正則表達式:例如,使用"[ \t]'[^']*'[ \t[:punct:]]"忽略單引號內的所有文本。

篩選"dcf"適用於 Debian 控製文件格式的文件。要保留的字段可以通過參數控製keep(帶有相應字段名稱的字符向量)。默認情況下, '⁠標題⁠' 和 '⁠說明⁠' 字段被保留。

篩選"md"用於文件降價格式 ('.md' 和 '.Rmd’文件),並且需要包commonmarkxml2可用。

aspell 返回的對象的 print 方法有一個 indent 參數,控製可能拚寫錯誤的單詞位置的縮進。默認為2; Emacs 用戶可能會發現使用縮進 0 並訪問 grep-mode 中的輸出很有用。它還具有 verbose 參數:當該參數為 true 時,還會顯示替換建議。

可以使用額外的 R 級字典。目前,這些文件的擴展名為“.rds’通過使用序列化單詞列表的字符向量獲得saveRDS。如果使用這樣的詞典,它們會被組合成一個單詞列表文件,然後用作拚寫檢查器的個人詞典(選項-p):因此,在這種情況下不使用默認的個人詞典。

繼承自aspell(具有有用的打印方法)的 DataFrame ,其中包含有關可能拚寫錯誤的單詞的信息。

例子

## Not run: 
## To check all Rd files in a directory, (additionally) skipping the
## \references sections.
files <- Sys.glob("*.Rd")
aspell(files, filter = list("Rd", drop = "\\references"))

## To check all Sweave files
files <- Sys.glob(c("*.Rnw", "*.Snw", "*.rnw", "*.snw"))
aspell(files, filter = "Sweave", control = "-t")

## To check all Texinfo files (Aspell only)
files <- Sys.glob("*.texi")
aspell(files, control = "--mode=texinfo")

## End(Not run)

## List the available R system dictionaries.
Sys.glob(file.path(R.home("share"), "dictionaries", "*.rds"))

參考

Kurt Hornik and Duncan Murdoch (2011). “Watch your spelling!” The R Journal, 3(2), 22-28. doi:10.32614/RJ-2011-014.

也可以看看

aspell-utils 用於拚寫檢查包的實用程序。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Spell Check Interface。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。