1.獲取pdf每一頁的所有字元,並放到集合中,放入格式為,x(左下角x座標): y:(左下角y座標) pageno:(合同頁數) key(關鍵字): index(在當前集合中的索引)
2.然後將要定位的關鍵字分割為單個字元的陣列,通過第乙個字元去獲取所有字元集合中,符合key=第乙個字元的集合元素,並將其放到乙個
新的陣列中。
3.然後去遍歷第二步得到的集合,然後編輯,再判斷需要匹配的第二個字元,如果當前元素的下乙個元素的key值不等於我們要匹配的
第二個字元,直接跳過,如果相等,則進行第三個字元匹配,如果都相等則,我們就找到了其中符合的元素,然後再放到乙個新的集合當中,
這個集合中的元素就是我們要定位的關鍵字的座標的首字元的左下角座標。
//用來獲取pdf中每一頁的字元
list
> allwordslist = collections.
synchronizedlist
(new
arraylist()
);//獲取符合關鍵字的結果
list
keyvos =
newarraylist
<
>()
; pdfreader pdfreader =
newpdfreader
(path)
; pdfreadercontentparser pdfreadercontentparser =
newpdfreadercontentparser
(pdfreader)
;//將字串分割為單個字元陣列
string [
] keys = key.
trim()
.split(""
);for(
int i =
1; i <= pdfreader.
getnumberofpages()
; i++
) list
filterlist =
newarraylist
<
>()
;for
(int i =
0; i < allwordslist.
size()
; i++
)for
(wordvo wordvo : filterlist)
//表示最後乙個字元都符合了,表示已經符合我我們給出的關鍵字標準
我將該**接入到自己專案中的時候,發現有些pdf還是讀不到關鍵字,後面我將每頁讀到的字元列印到控制台,發現textrenderinfo.gettext();
讀到的是多個字元,如果是多個字元我們將字元去掉空格,然後分割成單個字元,新增到集合中,所以就對**進行了一定的改造。改造如下:
/**
* 獲取符合關鍵字首字元的座標
* @param key
* @param path
* @return
* @throws ioexception
*/public
static list
getwordport
(string key, string path)
throws ioexception
//把所有空格都去掉再分割成字元去匹配
list
keyvos =
getport
(key.
replaceall
("\\s*",""
).split(""
),allwordslist)
;return keyvos;
}/**
* @param keys
* @param allwordslist
* @return
*/private
static list getport
(string [
] keys,list
> allwordslist)
//獲取符合關鍵字的結果
list
keyvos =
newarraylist
<
>()
;for
(wordvo wordvo : filterlist)
else
//表示最後乙個字元都符合了,表示已經符合我我們給出的關鍵字標準
if(i == keys.length -1)
keyvo keyvo =
newkeyvo()
; keyvo.
setpageno
(wordvo.
getpageno()
);keyvo.
setx
(wordvo.
getx()
);keyvo.
sety
(wordvo.
gety()
);keyvos.
add(keyvo);}
}}}return keyvos;
}
雖然說對**進行了一些改造,肯定有些時候還是會獲取不到關鍵字的,不過這種機率不會很大,如果有好的方法可以指出來,一起
改造改造。
參考部落格:
關鍵詞如何選擇定位?
根據收錄判定該詞競爭度 競價廣告數量 根據 檢視競爭度 逐個檢視前十名 看其權重 收錄 建站時間以及網域名稱是主網域名稱還是二級網域名稱,如果發現第一頁中有比較弱的 那麼擠進首頁還是很有可能的,抓住對方的弱點,增強自己的優勢。如果你發現某乙個詞在日後的某一天會有大規模的人關注,那麼就可以提前優化該詞...
關鍵詞密度
百科名片 目錄 隱藏 什麼是增加keywords密度的最好方式 關鍵字堆砌 keyword stuffing 的定義 關鍵字堆砌 keyword stuffing 關鍵字堆砌 keyword stuffing 是指在乙個網頁中非常密集地放置關鍵字。一般說來,如果關鍵字的出現過於頻繁,就會蓋過網頁的其...
關鍵詞提取
隱含主題模型優缺點 隱含主題模型可以很好地表示文件和標籤主題,有效降低標籤系統中噪音的影響。但是另外乙個方面,隱含主題相對於詞而言粒度較粗,對於具體實體 如人名 地名 機構名和產品名 的標籤沒有辦法做到很好地區分,因此對這些細粒度標籤推薦效果較差 典型的聚類演算法 層次聚類 hierarchical...