Libraryless. Click here for Pure Java version (2717L/17K).
1 | // dictionary and connectors have to be ciSets |
2 | static Chain<S> constructWordFromCISet_withConnectors(S word, Set<S> dictionary, Set<S> connectors) {
|
3 | ifdef constructWordFromCISet_withConnectors_debug |
4 | print("checking: " + word);
|
5 | endifdef |
6 | if (contains(dictionary, word)) ret Chain<S>(word); |
7 | for ping (int i = l(word)-1; i > 0; i--) {
|
8 | S prefix = takeFirst(i, word); |
9 | if (contains(dictionary, prefix)) {
|
10 | S rest = substring(word, i); |
11 | |
12 | // try connector |
13 | LS matchingConnectors = reversed(prefixesOfIC(connectors, rest)); |
14 | for (S conn : matchingConnectors) {
|
15 | Chain<S> chain = constructWordFromCISet_withConnectors(dropPrefixIC(conn, rest), dictionary, connectors); |
16 | if (chain != null) |
17 | ret Chain<S>(prefix, Chain<S>(conn, chain)); |
18 | } |
19 | |
20 | // try no connector |
21 | Chain<S> chain = constructWordFromCISet_withConnectors(rest, dictionary, connectors); |
22 | if (chain != null) |
23 | ret Chain<S>(prefix, chain); |
24 | } |
25 | } |
26 | null; |
27 | } |
Began life as a copy of #1027969
download show line numbers debug dex old transpilations
Travelled to 7 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
| Snippet ID: | #1027972 |
| Snippet name: | constructWordFromCISet_withConnectors |
| Eternal ID of this version: | #1027972/3 |
| Text MD5: | abe1dd6d6b479478392fbb972825cee7 |
| Transpilation MD5: | 945c475ba665eac774e0458bd8ecc7a8 |
| Author: | stefan |
| Category: | javax / nlp |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2020-04-21 11:11:10 |
| Source code size: | 1031 bytes / 27 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 422 / 553 |
| Version history: | 2 change(s) |
| Referenced in: | [show references] |