我想要一些方法來確定兩個網頁是否在語義上相關。我搜索了一下,發現了一個叫做WordNet(一個大的詞法數據庫)的東西。我想知道如何使用python和WordNet完成此操作?如何使用wordnet查找兩個網頁之間的語義關係?
0
A
回答
4
做的最簡單,最原始的方式,這將是:
從每個頁面提取前N項(關鍵字)(可通過頻率的前N項,不包括停止的詞語,如簡單「 a,the,an'in English)。這將爲您提供每個頁面的功能集。
比較頁面之間重疊的頂部術語。您可以使用Wordnet來比較術語的同義詞,例如運動鞋< ==>運動鞋。如果你有一定程度的關鍵字重疊,那麼頁面在某種程度上是相關的。
編輯:
一種更好的方式來獲得關鍵字的功能集爲每個頁面將提取統計顯著字的每一頁。您可以通過從參考文本中獲取或編輯(1 2和3個單詞)n-grams的列表來完成此操作。 wikipedia),然後計算頁面上的單詞/短語的n-gram,並比較n-gram與全局n-gram集合中n-gram的出現頻率。如果您發現網頁上的n-gram發生頻率比您期望給出參考語料庫的頻率更高,那麼它們可能在該頁面上具有統計顯着性。
其中最難的部分是獲取或編譯參考n-gram(它必須足夠大才能在統計上可行),您需要將它與您的網頁上的n-gram進行比較。您可以購買谷歌的n-gram語料庫,或者可以通過免費下載wikipedia等網站來建立自己的語言。如果你在谷歌環顧四周,其他人可能已經發布了一個免費的n-gram集。
1
我個人並沒有使用過它,但我聽說NLTK (Natural Language Toolkit)庫對於這些類型的語言分析任務可以提供很大的幫助。除了大量的語言語料庫和其他數據集以幫助您入門之外,他們還有許多不錯的文檔和教程。
相關問題
- 1. 如何查找WordNet中兩個同義詞之間的語義關係
- 2. 如何找到兩個短語之間的關係?
- 3. WordNet - 兩個單詞之間可能存在多個關係?
- 4. 如何使用Sparql查詢從wordnet中找到Hypernym關係?
- 5. 使用WordNet來確定兩個文本之間的語義相似度?
- 6. 兩個表之間的關係:使兩個表之間的關係
- 7. 如何找出兩個網頁之間所需的時間?
- 8. 如何找到兩個分佈曲線之間的關係
- 9. Neo4j:REST API Cypher Query查找兩個節點之間的關係
- 10. 查找Freebase中兩個實體之間的關係
- 11. 如何定義兩個has_many之間的關係:通過模型?
- 12. 如何使用PHPMyAdmin創建兩個表之間的關係?
- 13. 查找不同詞語之間的語義相似性和關係
- 14. SQL查詢找到兩個表之間沒有關係
- 15. 如何使用ado.net中無法定義兩個對象之間的關係EF
- 16. 如何查找兩個模型之間的匹配has_and_belongs_to_many關聯
- 17. 如何使用UCanAccess在兩個表格之間創建關係?
- 18. 使用python nltk來查找兩個網頁之間的相似性?
- 19. 如何在使用Python的Wordnet中查找相關性
- 20. RoR定義兩個模型之間的有意義的關係
- 21. 如何找到表之間的關係
- 22. 查找與關係之間的區別
- 23. [Freebase]:查找節點之間的關係
- 24. 如何使用Rails查找兩個對象之間創建的最近關聯?
- 25. 如何使兩個實體之間的關係 - 糖ORM
- 26. 如何使SQL兩個表之間的關係
- 27. wordnet關係
- 28. 如何使用ODATA查詢兩個實體之間是否存在關係?
- 29. 如何在兩個表之間建立兩個關係?
- 30. 如何在兩個模型之間做兩個has_many/belongs_to關係?