2016-02-12 49 views
0

將應用程序從一個開發平臺轉換爲VB.NET/SQL Server。T-SQL確定字符串文本中的名詞和動詞

用戶有一些功能,他們可以鍵入一個短語和數據庫搜索文本將完成。

原始代碼的維護者無法(或不願意)給我當前使用的任何邏輯或代碼。

我的一個用戶聯繫人告訴我,「搜索機制」決定短語中的動詞,並從那裏開始工作。

我們正在使用SQL Server 2008 R2。我們不允許使用CLR代碼。 有誰知道有什麼方法可以用T-SQL來確定SPEAKH的部分嗎?

如果我有SQL Server 2012,我會使用模糊搜索來完成這項工作,但我們沒有。

==========

UPDATE: 雖然我沒有做一個名詞/動詞/詞類查找是基於這樣做字典/短語看看UPS我目前的方法關鍵字並執行以下操作...

我將要搜索的短語拆分爲關鍵字。

我搜索我的詞典(術語和例子)或搜索詞彙列表中的任何單詞使用Like。

與那些候選人,我做了一組計數。我計算我原始短語上的精確匹配數量,然後計算匹配關鍵字的數量。

最後,我使用T-SQL Levenshtein算法來計算「差異距離」。

然後我按照總匹配數/ Levenshtein值的順序返回匹配。

這是「最好的」我能做到......

+0

不,這是絕對不可能的。抱歉。 –

+0

也許你可以用tsql [pathindex](http://msdn.microsoft.com/zh-cn/library/msdn/default.aspx)[https://technet.microsoft.com/zh-cn/library/ms187489%28v=sql.105%29.aspx]執行一些[模式匹配] .microsoft.com/en-us/library/ms188395.aspx)(有限的正則表達式)但我不知道一種模式來提取英語動詞... – T30

+0

狗在詞類中有很多麻煩。我認爲「散步」是一個主動動詞,他們認爲它是一個名詞。只是一個交換黃色粘滯便箋的機會。 (3M剛將這個名字從Pissed-it改成Post-it,並且表現得像是他們發明了這個主意。) – HABO

回答

1

你很可能在布隆過濾器來做到這一點...

https://en.wikipedia.org/wiki/Bloom_filter

Bloom過濾器可以作爲一種機制拼寫檢查和更正。它通過識別單詞(在你的字符串中)和字典中的單詞來工作......例如,你的字典將包含動詞

這裏是例如你將存儲在[Bloom Filter]字典中的動詞列表

http://www.worldclasslearning.com/english/five-verb-forms.html

那麼他們將被匹配到您的字符串的話.......

我有我的網站的例子,但是當我最後一次檢查該網站今天的服務器關閉。只要它可用,我會發佈一個鏈接到一個例子和演示...

在同一時間,這裏是一個例子,它是用C#編寫的,雖然.....

https://gist.github.com/richardkundl/8300092

好了,我的網站是再次...這裏是一個布隆過濾器的VB例子的鏈接。它的控制檯演示來說明布隆過濾器是如何工作的?

http://gsidev.somee.com/#3&84335AB075764976B53A90E9B1522000&vb

這裏是一個小VB.net和C#演示應用中的使用,我創建了一個WinForm控件的鏈接....有是一個演示視頻太....

http://gsidev.somee.com/#4&F69A67EE2E44492EA53A9537FD94F3FD&info

你基本上可以逆轉標識邏輯「正確」拼寫的單詞,而不是確定動詞或名詞....然後,而不是每一個字典單詞(就像你使用拼寫檢查器一樣),你只需要一個動詞或名詞詞典s ...

就速度而言,如果你調整了正確的布魯姆過濾器,即使對於10000字的字典,它也是非常有效的,它不會簡單地將給定的字符串與字符串列表進行比較將會永遠消失)......這比這更復雜一點......理論是,給定的單詞是「可能在設定中」或「絕對不在設定中」,即「它可能拼寫正確,或者絕對不是'拼寫正確'聽起來有點意味深長,但實際上大約有97% - 98%的時間非常準確......

+0

看起來很有趣。我可能可以在版本2中使用它。我有興趣在網站上看到你的例子。 – JTSOne

+0

不幸的是我的網站仍然沒有運行。不過,我會盡快告訴你,儘管我仍然有我的代碼,並且正在修改它以識別名詞和動詞以及拼寫檢查......它是一個Winforms組件,可以「插入」進入richTextBox並檢查拼寫,當你輸入, – Monty

+0

網站備份....已修改我的答案,包括新的鏈接演示和代碼.....希望有所幫助。 – Monty

相關問題