背景
這個(gè)學(xué)期我在教學(xué)生怎么開發(fā)一個(gè)簡(jiǎn)易的CAT工具(往期成果參見:),在開發(fā)過程中同學(xué)們遇到了一個(gè)文檔解析的難題,即如何能把不同類型的文本都導(dǎo)入到CAT工具并自動(dòng)完成分句。
這個(gè)功能非常不容易開發(fā),但好在一者科技()的張井、陳件已經(jīng)把這個(gè)功能開發(fā)好,并做成API(應(yīng)用程序接口)了,我們直接調(diào)用即可。
在這篇文章中我將簡(jiǎn)要介紹如何去調(diào)用他們的文檔解析API。
正文
第一步:了解調(diào)用API的簡(jiǎn)單方法
的文檔解析API地址是:
在這個(gè)地址中可以看到這樣的說明:
從中可知,文檔解析API的作用是:“文檔解析API提供了極其簡(jiǎn)單的編程接口,可以快速解析指定格式的文件,返回從文件中提取的文本和樣式數(shù)據(jù)對(duì)象。”
我填寫了上面的申請(qǐng)表,并很快拿到了所需的信息。
接下來(lái)就是去看他們提供的在線文檔:
第一次看到這些信息的人會(huì)覺得不知所措,但實(shí)際上這部分寫得非常簡(jiǎn)潔明了,我給大家解釋一下:
知識(shí)點(diǎn)一:接口完整路徑
其實(shí)這里的“接口完整路徑”就是一個(gè)網(wǎng)址,但是這個(gè)網(wǎng)址你不能直接在瀏覽器訪問,如果訪問的話會(huì)出現(xiàn)下面的錯(cuò)誤提示:
可見這不是一個(gè)我們常用的網(wǎng)址。
知識(shí)點(diǎn)二:請(qǐng)求方式:POST
我們?cè)跒g覽器中直接輸入這個(gè)網(wǎng)址并按回車鍵時(shí),我們就是在“請(qǐng)求”()這個(gè)網(wǎng)址。對(duì)于程序員來(lái)說,要通過寫代碼的方式來(lái)請(qǐng)求,而不是打開瀏覽器的方式,這時(shí)要用“POST”的方式來(lái)請(qǐng)求。
簡(jiǎn)單來(lái)說,“POST”就是“寄信”的意思,比如郵局叫“Post ”。
上一步的網(wǎng)址就是“收件人地址”,現(xiàn)在我們要給這個(gè)收件人寫一封信,信封上除了要注明具體地址外,還要注明一些額外的信息,而信封里則要裝入要發(fā)送的內(nèi)容。
在我們現(xiàn)在的這個(gè)案例中,我們要發(fā)送的內(nèi)容就是一個(gè)要去進(jìn)行斷句操作的文檔(比如一個(gè)Word文檔、一個(gè)PDF文檔)。
在上面的截圖中可知怎么用文本文檔做網(wǎng)頁(yè),的文檔解析API支持的格式有:“pdf 、doc、ppt、xls、docx、pptx、xlsx、txt、xliff、、xlf、xml、csv、idml、html、htm、md、vsdx、mif、ods、yml、ots、odg、otp、odt、ott、srt、rtf、json、dita、。”
這個(gè)文件的大小限制是:“文件大小不超過100M,文件字符數(shù)不超過字,word文件或excel文件行數(shù)不能超過30000行。”
這個(gè)文件要以“/form-data”方式提交。
知識(shí)點(diǎn)三:/form-data
大家平時(shí)應(yīng)該都填寫過各種類型的表單吧,當(dāng)你點(diǎn)擊“提交”的那一刻,表單中的數(shù)據(jù)就會(huì)發(fā)送出去,而這些數(shù)據(jù)需要進(jìn)行編碼。一般來(lái)說,我們的表單會(huì)把數(shù)據(jù)以兩種形式發(fā)送:
/x-www-form-
/form-data
如果我們的表單中有要發(fā)送的文件,那么就需要使用/form-data,否則就用/x-www-form-。
這也是為什么我們?cè)趯W(xué)網(wǎng)頁(yè)開發(fā)基礎(chǔ)的時(shí)候,當(dāng)學(xué)到上傳文件時(shí)怎么用文本文檔做網(wǎng)頁(yè),會(huì)寫這樣的代碼:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
form>
body>
html>
在上面的代碼中就能看到="/form-data"。
知識(shí)點(diǎn)四:請(qǐng)求參數(shù)列表
現(xiàn)在你站在郵局里寄信,東西已經(jīng)轉(zhuǎn)到信封里了,收信人地址也有了,就差在信封上填寫一些具體的信息了。這些信息就叫“請(qǐng)求參數(shù)”。
在的文檔解析API中,我們需要提供以下參數(shù):
file、、、from、to和de。
雖然在上面的截圖中已經(jīng)可以看到每個(gè)參數(shù)代表的意思,但我還是要再解釋一下:
file:這個(gè)參數(shù)是用戶上傳的文件,但實(shí)際操作過程中并非直接把文件地址放到這個(gè)參數(shù)里,而是要把文件用/form-data的形式編碼后再放進(jìn)去。
:這個(gè)實(shí)際上就是你在上注冊(cè)賬號(hào)時(shí)的郵箱地址。
:這個(gè)就是你成功申請(qǐng)到API后對(duì)方告訴你的一串密碼,這個(gè)密碼可以在登錄賬號(hào)后直接看到。
from:待解析文檔的語(yǔ)言編碼。
to:目標(biāo)語(yǔ)言的語(yǔ)言編碼。
在的文檔中,簡(jiǎn)體中文的編碼是:zh-CN,美式英文的編碼是en-US,注意,不是zh_CN和en_US。
de:調(diào)用方,這個(gè)可以留空。
有了以上這些基礎(chǔ)知識(shí)點(diǎn),我們就可以開始寫代碼了。
第二步:開始使用PHP來(lái)調(diào)用API
根據(jù)我在本微信公眾號(hào)中寫得往期文章,我接下來(lái)依然會(huì)在XAMPP這個(gè)工具中來(lái)使用PHP作為主要編程語(yǔ)言。
我首先啟動(dòng)XAMPP,并在根目錄中創(chuàng)建一個(gè)名為的文件夾。
在該文件夾中,我創(chuàng)建一個(gè)名為index.php的文件,并在其中撰寫以下代碼:
<html>
<body>
<form?action="upload.php"?method="post"
enctype="multipart/form-data">
<label for="file">Filename:label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
form>
body>
html>
在瀏覽器中運(yùn)行這段代碼的效果如下:
也就是說,我們可以直接在這里選擇要上傳的文件,并點(diǎn)擊“”,將這個(gè)文件發(fā)送到.php這個(gè)文件中。
接下來(lái)我們創(chuàng)建.php文件,并在其中撰寫代碼來(lái)顯示上傳文件的基本信息:
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "
";}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "
";echo "Type: " . $_FILES["file"]["type"] . "
";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
";echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?
??>