Ctextclassics, my First Package

May 17, 2018
ctextclassics API httr text analysis Chinese

My latest update is a milestone! I have authored my first ever R package which is an API caller for ctext.org. Ctext hosts numerous pre-modern Chinese texts and my package makes them available to you. The scope is broad, but think philosophical works in Confucianism, Daoism, Legalism, military doctrines, history compilations, works in medicine, and many more.

The three main functions of ctextclassics are get_chapter("book", "chapter") ,get_chapters("book", chapters), get_books("book") and the internal dataframe book_list which shows the available texts. So perhaps try something like:

library(ctextclassics)
head(unique(book_list$book), n = 5)
## [1] "analects"        "art-of-war"      "bai-hu-tong"     "baopuzi"        
## [5] "book-of-changes"
knitr::kable(head(get_books("analects")))
book chapter word chapter_cn
analects xue-er 子曰:「學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?」 學而
analects xue-er 有子曰:「其為人也孝弟,而好犯上者,鮮矣;不好犯上,而好作亂者,未之有也。君子務本,本立而道生。孝弟也者,其為仁之本與!」 學而
analects xue-er 子曰:「巧言令色,鮮矣仁!」 學而
analects xue-er 曾子曰:「吾日三省吾身:為人謀而不忠乎?與朋友交而不信乎?傳不習乎?」 學而
analects xue-er 子曰:「道千乘之國:敬事而信,節用而愛人,使民以時。」 學而
analects xue-er 子曰:「弟子入則孝,出則弟,謹而信,汎愛眾,而親仁。行有餘力,則以學文。」 學而


Just be careful, the API limit is around 60-ish. Which means you can get about 3 books on average before my download functions start spitting out NA values.

The API indexes its book and chapter names differently. Some are in English (e.g., “analects”) whereas others are written in Pinyin (e.g., “mengzi”). Some chapter titles use the word “the” whereas others don’t. So eventually I’ll consider the need to make the function calls more robust and help users avoid those inconsistencies. There’s a lot that can be improved here, be it adding authentication, a way to keep track of API call count, or anything else - but I’m looking forward to it!

So, what’s my ultimate goal? It is to use ctextclassics for text analysis on Chinese classic texts - Similar to how we see the amazing Tidytext and gutenbergr packages used! Quite ambitious, I know. At any rate, I’m enjoying reading this classical Chinese.

To cap off this post, you can use my package by typing devtools::install_github("Jjohn987/ctextclassics") and remember to check out the documentation of the functions for a better explanation.

If you want to contribute, please do so! You can comment here, fork my Github, or post an issue.

Plotting Word Bigrams with 3 Chinese Classics

June 1, 2018
tmcn ctextclassics tidytext

A Tidytext Analysis of 3 Chinese Classics

May 29, 2018
ctextclassics tidytext tmcn
comments powered by Disqus