* Ligature suppression word list @ 2021-04-03 15:06 denis.maier 2021-04-03 15:20 ` Arthur Rosendahl ` (3 more replies) 0 siblings, 4 replies; 16+ messages in thread From: denis.maier @ 2021-04-03 15:06 UTC (permalink / raw) To: ntg-context [-- Attachment #1.1: Type: text/plain, Size: 2460 bytes --] Hi everyone Now that Hans has implemented the new ligature suppression mechanism via language goodies - thanks again Hans! - we now need to come up with wordlists. I've started working on a list of German words with ligatures that should be suppressed. The list is derived from the word list that comes with the lualatex selnolig package: https://github.com/micoloretan/selnolig/blob/master/selnolig-german-wordlist.tex You can find the current list here : https://github.com/denismaier/context-nolig-wordlist The list is currently organized as follows : 1. L.25-l.35: This specifies words where automatic pattern matching is more difficult than usually because the words contain multiple ligatures, some of which must be suppressed while others must be preserved. In the case of « Auflagefläche » it's even the same combination of letters. So here, we use the bar | to manually indicate points where no ligature must occur. 2. L. 36ff.: The vast amount of words is currently in that list that specifies words where a ff, fl, fi, ffi, or ffl ligature has to be broken up after the first f. 3. L.1804ff contain words where ffi, ffl, or fff ligatures have to be prevented after the second f, so the first two fs form a ligature. 4. The remaining blocks starting at L.1900, l. 2073, l. 2157, l. 2225, and l. 2277 suppress ligatures for « ft » and « fft », « fb » and « ffb », « fh » and « ffh», «fj» and «ffj», and «fk» and «ffk» Obviously, that list is far from being complete, and the question is if it ever can be. Please have a look and feel free to propose more words to be included - either via mail or directly on github. More generally, there's the question how such a list should be enhanced? I was thinking about two options: 1. The new language options features include a tracker that allows for tracking for which words in a given document ligature prevention happened, and which words haven't been touched by the mechanism. It should be possible to analyze the log file and to create lists of words with ligatures. Should be a rather simple step to derive new words for the ligature-suppression wordlist. 2. A bigger solution might be to use selnoligs patterns in a script that can be run over a large corpus, such as the DWDS (Digitales Wörterbuch der deutschen Sprache). That should produce us a more complete list of words where ligatures must be suppressed. What do you think? Best, Denis [-- Attachment #1.2: Type: text/html, Size: 12409 bytes --] [-- Attachment #2: Type: text/plain, Size: 493 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 15:06 Ligature suppression word list denis.maier @ 2021-04-03 15:20 ` Arthur Rosendahl 2021-04-03 16:02 ` Hans Hagen 2021-04-03 15:58 ` Hans Hagen ` (2 subsequent siblings) 3 siblings, 1 reply; 16+ messages in thread From: Arthur Rosendahl @ 2021-04-03 15:20 UTC (permalink / raw) To: Mailing list for ConTeXt users On Sat, Apr 03, 2021 at 03:06:22PM +0000, denis.maier@ub.unibe.ch wrote: > What do you think? I think you should collaborate with the group of volunteers working on German hyphenation and related topics. They have a mailing list (in German): https://lists.dante.de/mailman/listinfo/trennmuster which is quite active and where Mico Loretan, the author of selnolig, occasionally posts. I’m sure they’ll be happy to help with suggestions and collaborative efforts, even if all of the main contributors use LaTeX. Arthur ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 15:20 ` Arthur Rosendahl @ 2021-04-03 16:02 ` Hans Hagen 2021-04-08 19:37 ` Arthur Rosendahl 0 siblings, 1 reply; 16+ messages in thread From: Hans Hagen @ 2021-04-03 16:02 UTC (permalink / raw) To: Mailing list for ConTeXt users, Arthur Rosendahl On 4/3/2021 5:20 PM, Arthur Rosendahl wrote: > On Sat, Apr 03, 2021 at 03:06:22PM +0000, denis.maier@ub.unibe.ch wrote: >> What do you think? > > I think you should collaborate with the group of volunteers working on > German hyphenation and related topics. They have a mailing list (in > German): https://lists.dante.de/mailman/listinfo/trennmuster which is > quite active and where Mico Loretan, the author of selnolig, > occasionally posts. I’m sure they’ll be happy to help with suggestions > and collaborative efforts, even if all of the main contributors use > LaTeX. german is just an example, dutch has some specific things, and i bet other languages have their demands so my aim is some general mechanism (for which much is already in place btw) ... we're talking of a what i tag as 'languages goodies' just like we have 'font goodies' .. a plug in system Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 16:02 ` Hans Hagen @ 2021-04-08 19:37 ` Arthur Rosendahl 2021-04-08 20:51 ` Hans Hagen 0 siblings, 1 reply; 16+ messages in thread From: Arthur Rosendahl @ 2021-04-08 19:37 UTC (permalink / raw) To: Hans Hagen; +Cc: Mailing list for ConTeXt users On Sat, Apr 03, 2021 at 06:02:10PM +0200, Hans Hagen wrote: > german is just an example, dutch has some specific things, and i bet other > languages have their demands so my aim is some general mechanism I appreciate that, but if you want to have data of sufficiently good quality to use this mechanism for individual languages, you need to invest a *lot* of time for each one of them. German is one of the very few languages I know of that has an active group of people working to produce that data, the “Trennmuster people”, as Mojca calls them ;-) Their word list supports many fine points of typography, even those that few programs can use, for example weighted hyphenation. Ligature prevention came in as a side project. Dutch, by contrast, does not seem so well served: the OpenTaal group is dormant and no longer offers the hyphenated word list that was once available (that was already the case five years ago). The most relevant page I find: https://www.opentaal.org/projecten/woordafbreking is from 2009. There have apparently been recent updates by a single person (who incidentally sometimes contributes to the German hyphenation working group), but they’re rather generic. Best, Arthur ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-08 19:37 ` Arthur Rosendahl @ 2021-04-08 20:51 ` Hans Hagen 0 siblings, 0 replies; 16+ messages in thread From: Hans Hagen @ 2021-04-08 20:51 UTC (permalink / raw) To: Mailing list for ConTeXt users On 4/8/2021 9:37 PM, Arthur Rosendahl wrote: > Dutch, by contrast, does not seem so well served: the OpenTaal group > is dormant and no longer offers the hyphenated word list that was once > available (that was already the case five years ago). The most relevant > page I find: https://www.opentaal.org/projecten/woordafbreking is from > 2009. There have apparently been recent updates by a single person (who > incidentally sometimes contributes to the German hyphenation working > group), but they’re rather generic. fwiw: They are active in collecting words (they also do stuff for open office). Dutch patterns don't chaneg much because the hyphenation is syllable based and predictable enough I think. There haven't been that many released of dutch patterns. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 15:06 Ligature suppression word list denis.maier 2021-04-03 15:20 ` Arthur Rosendahl @ 2021-04-03 15:58 ` Hans Hagen 2021-04-06 14:59 ` denis.maier 2021-04-06 15:03 ` denis.maier 2021-04-03 16:03 ` Hans Hagen 2021-04-03 16:42 ` Hans Hagen 3 siblings, 2 replies; 16+ messages in thread From: Hans Hagen @ 2021-04-03 15:58 UTC (permalink / raw) To: mailing list for ConTeXt users, denis.maier On 4/3/2021 5:06 PM, denis.maier@ub.unibe.ch wrote: > Hi everyone > > Now that Hans has implemented the new ligature suppression mechanism via > language goodies – thanks again Hans! – we now need to come up with > wordlists. > > I’ve started working on a list of German words with ligatures that > should be suppressed. The list is derived from the word list that comes > with the lualatex selnolig package: > https://github.com/micoloretan/selnolig/blob/master/selnolig-german-wordlist.tex > <https://github.com/micoloretan/selnolig/blob/master/selnolig-german-wordlist.tex> > > You can find the current list here : > https://github.com/denismaier/context-nolig-wordlist > <https://github.com/denismaier/context-nolig-wordlist> > > The list is currently organized as follows : > > 1. L.25-l.35: This specifies words where automatic pattern matching is > more difficult than usually because the words contain multiple > ligatures, some of which must be suppressed while others must be > preserved. In the case of « Auflagefläche » it’s even the same > combination of letters. So here, we use the bar | to manually > indicate points where no ligature must occur. > 2. L. 36ff.: The vast amount of words is currently in that list that > specifies words where a ff, fl, fi, ffi, or ffl ligature has to be > broken up after the first f. > 3. L.1804ff contain words where ffi, ffl, or fff ligatures have to be > prevented after the second f, so the first two fs form a ligature. > 4. The remaining blocks starting at L.1900, l. 2073, l. 2157, l. 2225, > and l. 2277 suppress ligatures for « ft » and « fft », « fb » and > « ffb », « fh » and « ffh», «fj» and «ffj», and «fk» and «ffk» > > Obviously, that list is far from being complete, and the question is if > it ever can be. Please have a look and feel free to propose more words > to be included – either via mail or directly on github. > > More generally, there’s the question how such a list should be enhanced? > I was thinking about two options: > > 1. The new language options features include a tracker that allows for > tracking for which words in a given document ligature prevention > happened, and which words haven’t been touched by the mechanism. It > should be possible to analyze the log file and to create lists of > words with ligatures. Should be a rather simple step to derive new > words for the ligature-suppression wordlist. > 2. A bigger solution might be to use selnoligs patterns in a script > that can be run over a large corpus, such as the DWDS (Digitales > Wörterbuch der deutschen Sprache). That should produce us a more > complete list of words where ligatures must be suppressed. where is that DWDS ... i can write some code to deal with it (i'd rather start from the source than from some interpretation; who know what more there is to uncover) additional info: we're talking of a mechanism sort of integrated in the hyphenation loop, where we can also handle compound words, if needed with details about how influence to hyphenate these) so the above question involves: - exceptions to exceptions - replacements before hyphenation - compound words (including lhmin/rhmin overloads) - (left right two sided) ligature and/or kern prevention and whatever we like/need more (within reasonable bounds), Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 15:58 ` Hans Hagen @ 2021-04-06 14:59 ` denis.maier 2021-04-06 15:03 ` denis.maier 1 sibling, 0 replies; 16+ messages in thread From: denis.maier @ 2021-04-06 14:59 UTC (permalink / raw) To: j.hagen, ntg-context > -----Ursprüngliche Nachricht----- > Von: Hans Hagen <j.hagen@xs4all.nl> > Gesendet: Samstag, 3. April 2021 17:58 > An: mailing list for ConTeXt users <ntg-context@ntg.nl>; Maier, Denis > Christian (UB) <denis.maier@ub.unibe.ch> > Betreff: Re: [NTG-context] Ligature suppression word list > > On 4/3/2021 5:06 PM, denis.maier@ub.unibe.ch wrote: > > Hi everyone > > > > Now that Hans has implemented the new ligature suppression mechanism > > via language goodies - thanks again Hans! - we now need to come up > > with wordlists. > > > > I've started working on a list of German words with ligatures that > > should be suppressed. The list is derived from the word list that > > comes with the lualatex selnolig package: > > https://github.com/micoloretan/selnolig/blob/master/selnolig-german-wo > > rdlist.tex > > <https://github.com/micoloretan/selnolig/blob/master/selnolig-german-w > > ordlist.tex> > > > > You can find the current list here : > > https://github.com/denismaier/context-nolig-wordlist > > <https://github.com/denismaier/context-nolig-wordlist> > > > > The list is currently organized as follows : > > > > 1. L.25-l.35: This specifies words where automatic pattern matching is > > more difficult than usually because the words contain multiple > > ligatures, some of which must be suppressed while others must be > > preserved. In the case of « Auflagefläche » it's even the same > > combination of letters. So here, we use the bar | to manually > > indicate points where no ligature must occur. > > 2. L. 36ff.: The vast amount of words is currently in that list that > > specifies words where a ff, fl, fi, ffi, or ffl ligature has to be > > broken up after the first f. > > 3. L.1804ff contain words where ffi, ffl, or fff ligatures have to be > > prevented after the second f, so the first two fs form a ligature. > > 4. The remaining blocks starting at L.1900, l. 2073, l. 2157, l. 2225, > > and l. 2277 suppress ligatures for « ft » and « fft », « fb » and > > « ffb », « fh » and « ffh», «fj» and «ffj», and «fk» and «ffk» > > > > Obviously, that list is far from being complete, and the question is > > if it ever can be. Please have a look and feel free to propose more > > words to be included - either via mail or directly on github. > > > > More generally, there's the question how such a list should be enhanced? > > I was thinking about two options: > > > > 1. The new language options features include a tracker that allows for > > tracking for which words in a given document ligature prevention > > happened, and which words haven't been touched by the mechanism. It > > should be possible to analyze the log file and to create lists of > > words with ligatures. Should be a rather simple step to derive new > > words for the ligature-suppression wordlist. > > 2. A bigger solution might be to use selnoligs patterns in a script > > that can be run over a large corpus, such as the DWDS (Digitales > > Wörterbuch der deutschen Sprache). That should produce us a more > > complete list of words where ligatures must be suppressed. > > where is that DWDS ... i can write some code to deal with it (i'd rather start > from the source than from some interpretation; who know what more there > is to uncover) The DWDS is here: https://www.dwds.de/ But I still need to check how we can extract the words from there... Denis ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 15:58 ` Hans Hagen 2021-04-06 14:59 ` denis.maier @ 2021-04-06 15:03 ` denis.maier 1 sibling, 0 replies; 16+ messages in thread From: denis.maier @ 2021-04-06 15:03 UTC (permalink / raw) To: j.hagen, ntg-context > -----Ursprüngliche Nachricht----- > Von: Hans Hagen <j.hagen@xs4all.nl> > Gesendet: Samstag, 3. April 2021 17:58 > An: mailing list for ConTeXt users <ntg-context@ntg.nl>; Maier, Denis > Christian (UB) <denis.maier@ub.unibe.ch> > Betreff: Re: [NTG-context] Ligature suppression word list > > On 4/3/2021 5:06 PM, denis.maier@ub.unibe.ch wrote: > > Hi everyone > > > > Now that Hans has implemented the new ligature suppression mechanism > > via language goodies - thanks again Hans! - we now need to come up > > with wordlists. > > > > I've started working on a list of German words with ligatures that > > should be suppressed. The list is derived from the word list that > > comes with the lualatex selnolig package: > > https://github.com/micoloretan/selnolig/blob/master/selnolig-german-wo > > rdlist.tex > > <https://github.com/micoloretan/selnolig/blob/master/selnolig-german-w > > ordlist.tex> > > > > You can find the current list here : > > https://github.com/denismaier/context-nolig-wordlist > > <https://github.com/denismaier/context-nolig-wordlist> > > > > The list is currently organized as follows : > > > > 1. L.25-l.35: This specifies words where automatic pattern matching is > > more difficult than usually because the words contain multiple > > ligatures, some of which must be suppressed while others must be > > preserved. In the case of « Auflagefläche » it's even the same > > combination of letters. So here, we use the bar | to manually > > indicate points where no ligature must occur. > > 2. L. 36ff.: The vast amount of words is currently in that list that > > specifies words where a ff, fl, fi, ffi, or ffl ligature has to be > > broken up after the first f. > > 3. L.1804ff contain words where ffi, ffl, or fff ligatures have to be > > prevented after the second f, so the first two fs form a ligature. > > 4. The remaining blocks starting at L.1900, l. 2073, l. 2157, l. 2225, > > and l. 2277 suppress ligatures for « ft » and « fft », « fb » and > > « ffb », « fh » and « ffh», «fj» and «ffj», and «fk» and «ffk» > > > > Obviously, that list is far from being complete, and the question is > > if it ever can be. Please have a look and feel free to propose more > > words to be included - either via mail or directly on github. > > > > More generally, there's the question how such a list should be enhanced? > > I was thinking about two options: > > > > 1. The new language options features include a tracker that allows for > > tracking for which words in a given document ligature prevention > > happened, and which words haven't been touched by the mechanism. It > > should be possible to analyze the log file and to create lists of > > words with ligatures. Should be a rather simple step to derive new > > words for the ligature-suppression wordlist. > > 2. A bigger solution might be to use selnoligs patterns in a script > > that can be run over a large corpus, such as the DWDS (Digitales > > Wörterbuch der deutschen Sprache). That should produce us a more > > complete list of words where ligatures must be suppressed. > > where is that DWDS ... i can write some code to deal with it (i'd rather start > from the source than from some interpretation; who know what more there > is to uncover) As it turn out, the linguists that helped with the selnolig package did use another corpus: Stuttgart "Deutsch" Web as Corpus They describe their approach in that paper: https://raw.githubusercontent.com/SHildebrandt/selnolig-check/master/selnolig-check-documentation.pdf Denis ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 15:06 Ligature suppression word list denis.maier 2021-04-03 15:20 ` Arthur Rosendahl 2021-04-03 15:58 ` Hans Hagen @ 2021-04-03 16:03 ` Hans Hagen 2021-04-03 16:30 ` Thangalin 2021-04-03 16:42 ` Hans Hagen 3 siblings, 1 reply; 16+ messages in thread From: Hans Hagen @ 2021-04-03 16:03 UTC (permalink / raw) To: mailing list for ConTeXt users, denis.maier On 4/3/2021 5:06 PM, denis.maier@ub.unibe.ch wrote: > 1. The new language options features include a tracker that allows for > tracking for which words in a given document ligature prevention > happened, and which words haven’t been touched by the mechanism. It > should be possible to analyze the log file and to create lists of > words with ligatures. Should be a rather simple step to derive new > words for the ligature-suppression wordlist. I already have some code for that but can't make you an update (garden is / will be down for some days due to maintenance). Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 16:03 ` Hans Hagen @ 2021-04-03 16:30 ` Thangalin 2021-04-03 16:43 ` Hans Hagen 0 siblings, 1 reply; 16+ messages in thread From: Thangalin @ 2021-04-03 16:30 UTC (permalink / raw) To: mailing list for ConTeXt users [-- Attachment #1.1: Type: text/plain, Size: 164 bytes --] A starting list of English non-ligatures: https://english.stackexchange.com/a/50957/22099 The entire SE thread has additional resources and is quite informative. [-- Attachment #1.2: Type: text/html, Size: 315 bytes --] [-- Attachment #2: Type: text/plain, Size: 493 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 16:30 ` Thangalin @ 2021-04-03 16:43 ` Hans Hagen 2021-04-03 19:21 ` Thangalin 0 siblings, 1 reply; 16+ messages in thread From: Hans Hagen @ 2021-04-03 16:43 UTC (permalink / raw) To: mailing list for ConTeXt users, Thangalin On 4/3/2021 6:30 PM, Thangalin wrote: > A starting list of English non-ligatures: > > https://english.stackexchange.com/a/50957/22099 > <https://english.stackexchange.com/a/50957/22099> > > The entire SE thread has additional resources and is quite informative. So can you make a file from that like we made as starting point for German? Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 16:43 ` Hans Hagen @ 2021-04-03 19:21 ` Thangalin 0 siblings, 0 replies; 16+ messages in thread From: Thangalin @ 2021-04-03 19:21 UTC (permalink / raw) To: mailing list for ConTeXt users [-- Attachment #1.1: Type: text/plain, Size: 10245 bytes --] Untested. Lists are not subject to copyright, so public domain should be legal, even though SE posts are CC-BY-SA. When a word has a single suffix or prefix (e.g., safflower/s), the two words are listed together, rather than using an explicit suffix/prefix section. return { name = "english", version = "1.00", comment = "English ligature suppression", author = "Mico Loretan, Dave Jarvis, & Hans Hagen", copyright = "Public domain", options = { { actions = { ["|"] = "noligature" }, words = [[ ]], }, { patterns = { fi = "f|i", fl = "f|l", }, words = [[ -- f|i deafish dwarfish elfish oafish selfish serfish unselfish wolfish -- f|l beefless briefless hoofless leafless roofless selfless turfless ]], suffixes = [[ ness ly ]], }, { patterns = { fi = "f|i", }, words = [[ proofing ]], prefixes = [[ air- child- fire- flame- moth- rust- sound- water- weather- ]], }, { patterns = { ff = "f|f", fi = "f|i", fl = "f|l", ffi = "f|fi", ffl = "f|fl", }, words = [[ -- f|f bookshelfful mantelshelfful shelfful -- f|i elfin chafing leafing loafing sheafing strafing vouchsafing beefing reefing briefing debriefing coifing fifing jackknifing knifing midwifing waifing wifing goofing hoofing roofing reroofing spoofing whoofing woofing gulfing begulfing engulfing ingulfing golfing gulfing rolfing selfing wolfing barfing bedwarfing dwarfing enserfing kerfing scarfing snarfing surfing windsurfing turfing wharfing beefier comfier goofier gulfier leafier surfier turfier beefiest comfiest goofiest gulfiest leafiest surfiest turfiest beefily goofily goofiness -- f|l aloofly briefly chiefly deafly liefly calflike dwarflike elflike gulflike hooflike leaflike rooflike serflike sheaflike shelflike surflike turflike waiflike wolflike halflife shelflife halfline roofline leaflet leaflets leafleted leafleting leafletting leafletted leafleteer pdflatex -- f|fi chaffinch wolffish -- f|fl safflower safflowers ]], }, { patterns = { ffi = "ff|i", }, words = [[ -- ff|i cuffing ]], prefixes = [[ hand un ]], }, { patterns = { ffi = "ff|i", }, words = [[ -- ff|i feoffing ]], prefixes = [[ en in ]], }, { patterns = { ffi = "ff|i", }, words = [[ -- ff|i staffing stuffing ]], prefixes = [[ re over under ]], }, { patterns = { ffi = "ff|i", }, words = [[ -- ff|i ruffing ]], prefixes = [[ cross over under ]], }, { patterns = { ffi = "ff|i", ffl = "ff|l", }, words = [[ -- ff|i draffish giraffish gruffish offish raffish sniffish standoffish stiffish toffish -- ff|l cuffless stuffless ]], suffixes = [[ ly ]], }, { patterns = { ffl = "ff|l", }, words = [[ -- ff|l scofflaw cufflink offline offload ]], suffixes = [[ s ed ing ]], }, { patterns = { ffi = "ff|i", ffl = "ff|l", }, words = [[ -- ff|i baffing biffing boffing bluffing outbluffing buffing rebuffing chaffing cheffing chuffing coffing coiffing daffing doffing fluffing gaffing gruffing huffing luffing miffing muffing offing piaffing puffing quaffing reffing riffing sclaffing scoffing scuffing shroffing sluffing sniffing snuffing spiffing stiffing stuffing tariffing tiffing waffing whiffing yaffing buffier chaffier chuffier cliffier daffier fluffier gruffier huffier iffier miffier puffier scruffier sniffier snuffier spiffier stuffier buffiest chaffiest chuffiest cliffiest daffiest fluffiest gruffiest huffiest iffiest miffiest puffiest scruffiest sniffiest snuffiest spiffiest stuffiest daffily fluffily gruffily huffily puffily scruffily sniffily snuffily spiffily stuffily fluffiness huffiness iffiness puffiness scruffiness sniffiness spiffiness stuffiness baffies biffies jiffies taffies toffies waffie Pfaffian Wolffian Wulffian -- ff|l bluffly gruffly ruffly snuffly stiffly rufflike clifflike ]], }, { patterns = { ft = "f|t", fft = "ff|t", }, words = [[ -- f|t chieftain chieftains chieftaincy chieftainship fifteen fifteens fifteenth fifteenths fifth fifthly fifths fifties fiftieth fiftieths fifty fiftyish halftime halftone rooftop rooftops rooftree -- ff|t offtrack ]] } } } [-- Attachment #1.2: Type: text/html, Size: 15382 bytes --] [-- Attachment #2: Type: text/plain, Size: 493 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-03 15:06 Ligature suppression word list denis.maier ` (2 preceding siblings ...) 2021-04-03 16:03 ` Hans Hagen @ 2021-04-03 16:42 ` Hans Hagen 3 siblings, 0 replies; 16+ messages in thread From: Hans Hagen @ 2021-04-03 16:42 UTC (permalink / raw) To: mailing list for ConTeXt users, denis.maier On 4/3/2021 5:06 PM, denis.maier@ub.unibe.ch wrote: > <https://github.com/denismaier/context-nolig-wordlist> For those interested, that file only has ligature prevention definitions. { actions = { ["|"] = "noligature" }, words = [[ Auf|lagefläche Auf|lageflächen Auf|lagenziffer Auf|lagenziffern ]], }, can be (lig prevention already in words): { words = [[ Auf|lagefläche Auf|lageflächen Auf|lagenziffer Auf|lagenziffern ]], }, or the more efficient (first match only): { actions = { ["|"] = "noligature" }, matches = { 1 } words = [[ Auflagefläche Auflageflächen Auflagenziffer Auflagenziffern ]], }, or if you want all matches: { actions = { ["|"] = "noligature" }, words = [[ Auflagefläche Auflageflächen Auflagenziffer Auflagenziffern ]], }, or when you want no kerns either (of course on can also use the petterns key): actions = { ["|"] = "noligature nokern" }, words = [[ ef|fe ]], }, btw, user will also be able to do this in a document source \startlanguageoptions[de] Zapf|innovation whatever+innovation \stoplanguageoptions ligature prevention in the first and compound word in the next one. so, one way to see what we need is if users try to analyze their 'exceptions' if they have them defined at all, so that we can spot possible tricks needed, (i might actually combine this with exceptions that normally come after this stage) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <mailman.248.1617745098.1120.ntg-context@ntg.nl>]
* Re: Ligature suppression word list [not found] <mailman.248.1617745098.1120.ntg-context@ntg.nl> @ 2021-04-07 18:19 ` rha17 2021-04-08 8:52 ` denis.maier 2021-04-12 15:52 ` denis.maier 0 siblings, 2 replies; 16+ messages in thread From: rha17 @ 2021-04-07 18:19 UTC (permalink / raw) To: ntg-context [-- Attachment #1.1: Type: text/plain, Size: 2103 bytes --] > Message: 2 > Date: Tue, 6 Apr 2021 15:03:54 +0000 > From: <denis.maier@ub.unibe.ch <mailto:denis.maier@ub.unibe.ch>> > To: <j.hagen@xs4all.nl <mailto:j.hagen@xs4all.nl>>, <ntg-context@ntg.nl <mailto:ntg-context@ntg.nl>> > Subject: Re: [NTG-context] Ligature suppression word list > Message-ID: <41e6530172b54bffb7a82febff0a6be5@ub.unibe.ch <mailto:41e6530172b54bffb7a82febff0a6be5@ub.unibe.ch>> > Content-Type: text/plain; charset="iso-8859-1" > >> -----Ursprüngliche Nachricht----- >> Von: Hans Hagen <j.hagen@xs4all.nl <mailto:j.hagen@xs4all.nl>> >> Gesendet: Samstag, 3. April 2021 17:58 >> An: mailing list for ConTeXt users <ntg-context@ntg.nl <mailto:ntg-context@ntg.nl>>; Maier, Denis >> Christian (UB) <denis.maier@ub.unibe.ch <mailto:denis.maier@ub.unibe.ch>> >> Betreff: Re: [NTG-context] Ligature suppression word list […] >> >>> 2. A bigger solution might be to use selnoligs patterns in a script >>> that can be run over a large corpus, such as the DWDS (Digitales >>> Wörterbuch der deutschen Sprache). That should produce us a more >>> complete list of words where ligatures must be suppressed. >> >> where is that DWDS ... i can write some code to deal with it (i'd rather start >> from the source than from some interpretation; who know what more there >> is to uncover) > > As it turn out, the linguists that helped with the selnolig package did use another corpus: Stuttgart "Deutsch" Web as Corpus > They describe their approach in that paper: https://raw.githubusercontent.com/SHildebrandt/selnolig-check/master/selnolig-check-documentation.pdf <https://raw.githubusercontent.com/SHildebrandt/selnolig-check/master/selnolig-check-documentation.pdf> A lot of corpora can be found here: https://wortschatz.uni-leipzig.de/de <https://wortschatz.uni-leipzig.de/de> especially here: https://wortschatz.uni-leipzig.de/de/download/German <https://wortschatz.uni-leipzig.de/de/download/German> There are corpora of many other languages, too, such as English, French, Dutch, Spanish, Russian, Japanese, Latin, … HTH Ralf [-- Attachment #1.2: Type: text/html, Size: 3626 bytes --] [-- Attachment #2: Type: text/plain, Size: 493 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-07 18:19 ` rha17 @ 2021-04-08 8:52 ` denis.maier 2021-04-12 15:52 ` denis.maier 1 sibling, 0 replies; 16+ messages in thread From: denis.maier @ 2021-04-08 8:52 UTC (permalink / raw) To: ntg-context [-- Attachment #1.1: Type: text/plain, Size: 550 bytes --] Von: ntg-context <ntg-context-bounces@ntg.nl> Im Auftrag von rha17@t-online.de Gesendet: Mittwoch, 7. April 2021 20:20 An: ntg-context@ntg.nl Betreff: Re: [NTG-context] Ligature suppression word list A lot of corpora can be found here: https://wortschatz.uni-leipzig.de/de especially here: https://wortschatz.uni-leipzig.de/de/download/German There are corpora of many other languages, too, such as English, French, Dutch, Spanish, Russian, Japanese, Latin, … HTH Ralf Wow, exactly what I was looking for. Thanks! Denis [-- Attachment #1.2: Type: text/html, Size: 3243 bytes --] [-- Attachment #2: Type: text/plain, Size: 493 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Ligature suppression word list 2021-04-07 18:19 ` rha17 2021-04-08 8:52 ` denis.maier @ 2021-04-12 15:52 ` denis.maier 1 sibling, 0 replies; 16+ messages in thread From: denis.maier @ 2021-04-12 15:52 UTC (permalink / raw) To: ntg-context [-- Attachment #1.1: Type: text/plain, Size: 2733 bytes --] Hi, a small update on this one : I’ve built a small python script that uses the patterns from the selnolig package to extract words with suspicious ligatures from the word list provided by the Uni Leipzig corpus project. Running the script over a corpus of over 1 million words produces the attached word list. The resulting list of words is not huge. That corpus gives us a list of about 790 words. I’ll need to check whether they already are in the goodies file or if I need to add them. Anyway, I was thinking about making such a script more generic. Think of something along the lines of: pdftotext book.pdf | showIncorrectLigatures.py > incorrect-ligatures.txt Denis Von: ntg-context <ntg-context-bounces@ntg.nl> Im Auftrag von rha17@t-online.de Gesendet: Mittwoch, 7. April 2021 20:20 An: ntg-context@ntg.nl Betreff: Re: [NTG-context] Ligature suppression word list Message: 2 Date: Tue, 6 Apr 2021 15:03:54 +0000 From: <denis.maier@ub.unibe.ch<mailto:denis.maier@ub.unibe.ch>> To: <j.hagen@xs4all.nl<mailto:j.hagen@xs4all.nl>>, <ntg-context@ntg.nl<mailto:ntg-context@ntg.nl>> Subject: Re: [NTG-context] Ligature suppression word list Message-ID: <41e6530172b54bffb7a82febff0a6be5@ub.unibe.ch<mailto:41e6530172b54bffb7a82febff0a6be5@ub.unibe.ch>> Content-Type: text/plain; charset="iso-8859-1" -----Ursprüngliche Nachricht----- Von: Hans Hagen <j.hagen@xs4all.nl<mailto:j.hagen@xs4all.nl>> Gesendet: Samstag, 3. April 2021 17:58 An: mailing list for ConTeXt users <ntg-context@ntg.nl<mailto:ntg-context@ntg.nl>>; Maier, Denis Christian (UB) <denis.maier@ub.unibe.ch<mailto:denis.maier@ub.unibe.ch>> Betreff: Re: [NTG-context] Ligature suppression word list […] 2. A bigger solution might be to use selnoligs patterns in a script that can be run over a large corpus, such as the DWDS (Digitales Wörterbuch der deutschen Sprache). That should produce us a more complete list of words where ligatures must be suppressed. where is that DWDS ... i can write some code to deal with it (i'd rather start from the source than from some interpretation; who know what more there is to uncover) As it turn out, the linguists that helped with the selnolig package did use another corpus: Stuttgart "Deutsch" Web as Corpus They describe their approach in that paper: https://raw.githubusercontent.com/SHildebrandt/selnolig-check/master/selnolig-check-documentation.pdf A lot of corpora can be found here: https://wortschatz.uni-leipzig.de/de especially here: https://wortschatz.uni-leipzig.de/de/download/German There are corpora of many other languages, too, such as English, French, Dutch, Spanish, Russian, Japanese, Latin, … HTH Ralf [-- Attachment #1.2: Type: text/html, Size: 7565 bytes --] [-- Attachment #2: word-list.txt --] [-- Type: text/plain, Size: 11751 bytes --] Auftrag Auftritt Auftakt Auflage Auflösung Aufträge fünften Auftraggeber Auflagen Auffassung fünfte Aufführung Auftragseingang auftreten Auftritte Fünftel Straftaten Auftragsbestand Aufforderung Auftreten Auflistung Auftrieb Aufführungen Straftat auffällig Auftragsvolumen Auftragsbücher Auffällig Auftragseingänge Schieflage Auftragslage auflösen Auftragsbestätigung Aufträgen Cheftrainer Fünfte Auffinden Kopftuch auffallend auffällige elften Auffassungen Auflaufform Auftraggebers Auftritten auffangen offline Auffahrt Auftragswert Fünfter Auftaktveranstaltung Auftragserteilung Straftatbestand auffüllen Auflauf Auftragnehmer Dorffest Kaufinteresse Straftäter auftauchen elfte Auffallend fünften Mal fünfter Auffälligkeiten Auftragsvergabe Kaufinteressenten auffindbar auftretenden Auffahrunfall Prüfling aufladen auflaufen Auftrages Auftrags Dampflokomotiven auffälliges fünftägigen Auflösungen Auftragen Hofladen Schlaflosigkeit auftretende Aufladen Aufladung Auflockerung Auftaktspiel Auftragsbüchern Auftritts Briefträger Prüflinge Schlaflabor Schlaftabletten kampflos Auftaktquartal Auftauchen Auftragsabwicklung Auftragseingängen Dampflok Hoffest Tiefflug auffallen auffrischen auffälliger auffälligsten schlaflose Auffrischung Auffällige Auflehnung Auflieger Auftraggebern Auftragssumme Brieftasche Elfter Straftätern auffälligste fünftes schlaflose Nächte tarifliche Auffahrunfälle Auflagenhöhe Auflassung Auftaktsieg Auftragsbearbeitung Auftragseingangs Auftragsmord Auftragsrückgang Auftretens Kopfteil Kopftuchverbot Scheffler Tariflohn Tieflader auffälligen auftragsbezogen Auffanglager Aufführungspraxis Auflockerungen Auflösungsvertrag Auftanken Auftragnehmers Auftragsbestände Auftragsbuch Auftragseinbruch Auftragsplus Auftrittsmöglichkeiten Brieffreund Golffahrer Kopftücher Offline Tiefladern auffallende auffordern aufführen auflegen auftauen auftragen auftreiben fünftägige schlaflosen Auffahrten Auffahrunfällen Auffanggesellschaft Aufforderungscharakter Aufforstung Auffälligstes Auffüllen Auflagefläche Auflaufen Auflösungserscheinungen Auftauen Auftragsannahme Auftragsarbeiten Auftragskomposition Auftragsminus Auftragsmorde Auftrittsort Brieffreundin Brieffreundschaft Brieftaschen Brieftauben Cheftrainer Andreas Hirsch Fünften Fünftes Kampffeld Kaufinteressent Kopfleiste Surftipps Surftips Tiefland aufleben auflockern auftanken auftrumpfen stoffliche tiefliegenden Auffanglösung Auffindung Auffliegen Aufforderung zum Tanz Aufforderungen Aufforstungsmaßnahmen Auffälligkeit Auffälligste Auffälligster Aufführungsorte Auffüllung Auflage von 2 Auflagenverstöße Auflegen Auflösen Auflösungsbeschluss Auflösungstendenzen Auftaktdrittel Auftaktrennen Auftauzeit Auftrag geben Auftrage Auftrageber Auftraggeberin Auftragsbestätigungen Auftragseinbrüche Auftragsentwicklung Auftragsfertiger Auftragsformular Auftragsindex Auftragsmörder Auftragsnummer Auftragspolster Auftragswerken Auftretende Auftrittszeit Auftrumpfen Brieffreundschaften Brieftaube Dampflokomotive Dampfloks Dorffeste Dorffesten Dorffestes Dorfteich Elfte Golfturnier Hoffassade Hoffung Hoftür Kampffahrzeuge Kampflos Kampflustig Kopffreiheit Kopftuch tragen Kopftuchs Kopftuchstreit Prüffristen Prüflings Schlaflabore Schlaflose Schlaftablette Straflager Straflosigkeit Straftatbestände Straftraining Surftipp Tarifflucht Tarifforderungen Tarifliste Tariflöhne Tariftabelle Tariftreuegesetz Tiefflüge Wurftechniken auffordernde auffälligem auffällt auflachen auflagenstärkste auflandigem aufleuchten aufliegen auftauchenden auftraggebende auftun elften Mal ft ftp fünflappig fünfte Mal kopflos schlaftrunkenen stofflichen Auffahren Auffahrgefahr Auffahrt zum Auffallen Auffang- Auffangbeckens Auffangbehälter Auffangbett Auffangen Auffangrege-lungen Auffangsieb Auffangstationen Auffangsystem Auffangund Auffangvorrichtung Auffangwanne Auffangzentrum Auffassungsgabe Auffassungsunterschied Auffassungsunterschiede Auffasungen Auffindbarkeit Auffindens Auffindsituation Auffllig Auffordernd Aufforstungen Aufforstungsbescheid Aufforstungsprogramm Aufforstungsunternehmen Auffrischen Auffrischimpfung Auffrischungen Auffrischungsimpfung Auffälligen Auffälliges Auffälligkeitsgrad Aufführungen/Lesungen Aufführungsbedingungen Aufführungsblöcken Aufführungsdauer Aufführungskünste Aufführungsort Aufführungspause Aufführungstermine Auffüllarbeiten Auffüllkapazität Auffütterung Auflagebereich Auflagedatum Auflagedruck Auflageflaeche Auflagemaß Auflagen-Plus Auflagendruck Auflagendruckprozess Auflagenrückgang Auflagenzahlen Auflagepunkte Auflager Auflagerreaktionen Auflagezeit Auflassungsvormerkung Auflauf-Alternative Auflaufbremse Auflaufs Auflaufschäden Aufleben Auflegen-Symbol Aufleger Auflegung Aufleuchten Auflichtbildverarbeitung Auflichtmikroskopie Aufloesung Auflösezeit Auflösung der Ehe Auflösungs-Dreisatz Auflösungs-Erscheinungen Auflösungsantrag Auflösungsarbeit Auflösungsbeschluß Auflösungsverlust Auflösungsversammlung Auflösungsvertrages Auflösungsverträge Auflüge Auftakt-Heldin Auftakt-Niederlage Auftakt-Reise Auftakt-Sieg Auftaktabend Auftaktaktionen Auftaktbezwinger Auftaktdrittels Auftaktetappe Auftaktfall Auftaktgegner Auftaktpartie Auftaktpremiere Auftaktprogramm Auftaktsatz Auftaktseminar Auftaktshow Auftaktspiele Auftakttermin Auftaktveranstaltungen Auftaktvorlesung Auftanken Auftauchende Auftauchgeschwindigkeit Auftrag erteilen Auftrag vergeben Auftragbestand Auftragemengen Auftraggbeer Auftrags- Auftrags-volumens Auftragsarbeit Auftragsarten Auftragsbaby Auftragsberatungsstellen Auftragsbericht Auftragsbeschreibung Auftragsbestandes Auftragsbestands Auftragsbestätigung/Lieferschein Auftragsboom Auftragsdaten Auftragsdecke Auftragsdurchlauf Auftragseinbrüchen Auftragsende Auftragserholung Auftragsfirma Auftragsfirmen Auftragsflaute Auftragsflut Auftragsformulare Auftragsgegenstandes Auftragsgeschwindigkeit Auftragshöhe Auftragsinhalt Auftragskiller Auftragskostenpauschale Auftragskunst Auftragslücken Auftragsmangel Auftragsmordes Auftragsnamens Auftragspalette Auftragspauschale Auftragspotential Auftragspotenzial Auftragsproduktion Auftragsprojekte Auftragsreichweite Auftragsreichweiten Auftragsrückgänge Auftragssachbearbeiter Auftragsschub Auftragsschwankungen Auftragssituation Auftragsspitzen Auftragsstammsatz Auftragsstornierungen Auftragsstornos Auftragsstunden Auftragssummen Auftragssätze Auftragstalfahrt Auftragstyp1:Auftrag Auftragsunternehmern Auftragsverdoppelung Auftragsverfolgung Auftragsvergaben Auftragsvielfalt Auftragsvolumens Auftragswarteschlange Auftragswelle Auftragswerk Auftragswertes Auftragswesens Auftragszahlen Auftragszugangsim Auftragung Auftreffen Auftreffgeschwindigkeit Auftreffpunkt Auftrennen Auftretenden Auftriebkraft Auftriebsgürtel Auftriebshilfen Auftriebskraft Auftriebskräfte Auftriebskörper Auftriebsprinzip Auftriebszuwachs Auftriebsübungen Auftriebverliehen Auftrittes Auftrittmöglichkeiten Auftritts-Reihenfolge Auftrittserfahrung Auftrittsgarantie Auftrittsmarathon Auftrittsorte Auftrittsreihe Auftrittstermine Auftrittstiefe Auftrittsverbot Auftrittsverbote Auftrocknung Auftrumpferei Briefform Brieffreunde Brieflaufzeiten Brieftaubenausstellung Brieftaubenzuchtverein Brieftitel Briefträgern Cheffige Cheflimousinen Cheftechnologin Cheftoilette Cheftrainer Andreas Bergmann Cheftrainer Frank Mantek Cheftrainer Maier Cheftrainer Martin Rufener Cheftrainer-Posten Cheftrainer-Stelle Cheftrainerin Cheftrainerin Ulla Koch Cheftrainers Cheftrainerstelle Cheftu Dampffontäne Dampflagerstätten Dampfleck Dampfleistung Dampflock Dampflokbestand Dampflokeldorados Dampflokfahrten Dampflokführer Dampflokzuschlag Dampfluftbefeuchter Dorffest-Atmosphäre Dorffest-Ausschuss Dorffestmacher Dorffeuerwehr Dorffilialen Dorfidylle Dorfitter Dorfladen Dorflebens Dorflehrer Dorftore Dorftrottel Dorfturnier Fünflingen Fünftausend Fünftelregelung Golffahrerin Golffalte Golfferien Golflehrer Golflektion Golfliebhaber Golftag Golftouren Grifflänge Grifflöchern Hanffaser Hanffeld Hanffreund Hanfliteratur Hoffeste Hoffungen Hoffungsträger Hofi Hofladens Hofland Hofleben Hoflicht Hoflieferant Hoflnung Hofläden Hoftheater Huflederhaut Impffest Impffrist Impflösungen Impflücken Kampffertigkeit Kampfformen Kampfführung Kampfinstrument Kampflesben Kampflied Kampflinie Kampflose Kaufimpulse Kopffeld Kopffüßer-Kamasutra Kopflänge Kopfläuse Kopftemperatur Kopftransplantation Kopftreffer Kopftrommel Kopfträger Kopftuchdebatte Kopftuchverbots Laufteam Lauftest Offline-Betrachtung Offline-Betrieb Offline-Browser Offline-Funktionalitäten Offline-Geschäft Offline-Kompaktierung Offline-Programmierung Offline-Publikationen Offline-Test Offline-Version Offline-Vertriebskanal Offline-Wikipedia Offlineversion Offlinezeit Prüffehler Prüffrist Prüflaboratorien Prüflaboratorium Prüflabors Prüflager Prüflauf Prüfleiter Prüflingen Prüflinges Prüflingsanschluss Prüfliste Prüflizenzen Prüftruppe Ruftaste Ruftasten Rufton Rufton-Listen Ruftongenerator Rumpfflächen Rumpfform Schiffl Schifflände Schlaflaborpersonal Schlaflager Schlaflandschaft Schlaflieder Schlafliegen Schlaftabletten-Sucht Schlaftemperatur Schlaftheater Schlaftrakt Schlaftrunken Schlaftyp Schleiflack Stoffideen Stoffliche Stofflänge Straftatbestandes Straftatbilanz Straftatverdacht Straftäterin Straftäters Sumpflandschaft Surflehrerbody Tarifforderung Tariffragen Tariffähigkeit Tarifinformation Tarifinnovationen Tariflandschaft Tariflichen Tariflohns Tariflohnsteigerung Tarifthemen Tariftreue-Erklärung Tiefflieger Tiefflugaktivitäten Tiefflugangriffen Tiefflugschneisen Tiefland-Regenwälder Tieflandes Tieflandgebiete Tieflandgebieten Tieflandregenwälder Tieflochbohren Tieflohnbereich Tieftauchen Tieftauchweltrekord Tieftemperaturforschung Tiefton-Verstärkers Tieftonbereich Tieftöner Topflappen Torflaute Torftopf Wurftechnik auffahren auffahrenden auffallenden auffallenderweise auffallendes auffallendste auffassen auffinbar aufflammen aufflanschen auffliegen aufflog auffordert auffressen auffährt auffälligstes aufladbare aufladbaren auflandige auflassen auflauernden auflaufendem auflaufender auflebenden aufleuchtenden aufliegende aufliegenden auflockernde auflösbar auflösenden auflöst auflösungsgerichteten auftakeln auftauchende auftauchte auftischen auftragsbezogene auftragsbezogener auftragsgefertigten auftragsneutral auftragsrelevanten auftreffenden auftretender auftretende Lärmbelästigungen auftrumpfende auftrumpfender briefliche brieflichem brieflichen elftes fbr-Branchenführer fbr-Fördermitglieder fffffffrrrrrrrrrrttttttttt fh-potsdam.de fh-zwickau.de fhS fhren fkedvberatung flappenden ftp-Applikationen ftp-Server ftp.Uni-Augsburg.DE ftp.cityhost.de ftp.suse.com ftplib.pl-Bibliothek ftw.at fünftausend fünfteilige fünfteiligen fünftens fünftägiger fünftätigen kampffrei kampffreudige kampflustigen kopfförmig offline-Lesen prüffähige schieflaufen schlaflos schlaftrunkener senffarbenen straflos tariffähigen tariflich tariflichen tariflose tariftreue tariftreuen tieffrequenten [-- Attachment #3: create-ligature-prevention-wordlist.txt --] [-- Type: text/plain, Size: 16116 bytes --] import re # Step 1 Read the file #input_file = 'deu_mixed-typical_2011_10K-words.txt' input_file = 'deu_mixed-typical_2011_1M-words.txt' with open(input_file, encoding='utf8') as f: lines = [re.sub('([0-9]+)\t|\t([0-9]+)\n', '', line) for line in f] # Step 2 Filter # either with list comprehension # filtered_lines = [el for el in lines if re.match(r'.*ff.*', el)] # or with a filter function # removeLigsPattern = r'(.*auffo.*|.*aufli.*)' # Don't suppress ligatures in these words noFalsePositives = re.compile(r"""( Lauffen| Stauffach| Stauffen| stauffen| Stauffer| stauffer| Stauffisch| stauffisch| chauffier| Chauffier| chauffeur| Chauffeur| chauffement| cheffekt| Scheffel| scheffel| cheffizi| cheffé| Hoffacker| Hoffart| Hoffärt| Hoffricht| Hoffranz| tieffekt| tieffiziffahrtffallee| ffallerg| ffallokat| iffalt| offalt| Diffami| diffami| riffans| toffansffarbeit| toffeier| ffeindealerBüffeld| büffeld| ffeldenk| Iffeld| Löffeld| löffeld| Müffeld| müffeld| nüffeld| Riffeld| taffeld| toffeld| Trüffeld| trüffeld| Waffeld| waffeldffelleck| ffellinde| Muffell| muffell| öffell| taffell| toffell| üffell| Buffett| Büffett| buffett| büffett| Buffetz| Büffetz| affirm| Affirm| Affoltern| Suffrage| suffrage| toffrak| ffraum| ffraub| ffrausch| ffraup| toffreak| chiffrei| toffrei| uffreis| luffrei| iffreig| toffries| affront| Affront| iffund| toffund| iffuss| rtstraffern| ssstraffern| Briefing| ebriefing| Chefin| chefin| chefibel| chefiebe| chefigur| chefilm| chefili| chefirm| chefisch| Hofier| Laufig| Blaufi| laufilter| laufiedr| rumpfig| schafigu| chlafitt| Tarifier| tarifier| figelehrt| Delfinfo| Delfinhalt| raffinhalt| Delfinkont| auflair| aufläche| aufliegl| auflüssig| baufl| Baufl| blaufl| Blaufl| fraufl| Fraufl| gauflöte| graufl| Graufl| onauflo| onauflu| Moskaufl| Schauflieg| SchaufloÃ| schauflöÃ| Schauflug| Schauflüg| schauflieg| schaufloÃ| schauflöÃ| schauflug| schauflüg| Taufliege| achefl| ichefl| schefl| chefläche| dorfliese| dorflüg| thanflamm| hoflosk| eimpflanz| eimpfleg| timpfleg| kopflaster| kopfleg| kopflaum| Durufl| mbarufl| ruflagge| rufleisch| nsumpfl| isumpfl| ssumpfl| surfleck| surflüg| surflüss| tiefläche| atieflaute| atieflut| Topflagg| Topflitz| Topflor| rtopfli| topfläch| topfleg| topflop| topflug| topflüg| Torflagge| Torflügel| Torflut| torfläche| torflasch| torflieg| torflimm| torflitz| torfloss| torflott| torfluch| torflug| torflüg| torflüss| torfluss| torfluÃ| tropflug| aflosk| rafloss| ampfläch| ampflanz| ampfleg| eufleiÃ| eufleiss| siflage| ouflage| flandern| flandrisch| huffleb| nflehn| rflehn| Hoflehn| Kaltefleiter| Hoefler| Knoepffler| fflerhyth| flicht| Bempfling| Haflinge| flöchte| flohnetz| ntflohn| lfloss| lflosk| gopflaum| iopflast| nopflaster| opflair| opflanz| pfloss| Breifl| breifl| Dreifl| dreifl| Freifl| freifl| eiereifl| reifläch| reiflagg| reiflamm| reiflasch| reiflies| reiflock| reifloh| reiflöhe| reiflott| tafleck| taflege| weifleck| chwerfl| werflitz| araffind| raffinte| stoffiz| stoffig| omicheft[ceg]| elfterfolg| fünfterfolg| Fünfterfolg| fünftrang| Fünftrang| fünftreich| Fünftreich| Fünftoper| Fünftrund| Fünftäon| fünftältest| Fünftältest| Senftenberg| straftheit| ftagent| ftanzahl| ftanzeig| ftanzieh| ftanzüg| ftaristokr| ftassel| fteamt| nfteich| ifteich| fteilfr| fterminder| ftermitt| ftestation| ftestatist| ftextrakt| fthemm| ftiefigur| haftier| Muftier| stiftisch| ünftisch| ftodem| ftopfer| afträume| äfträume| rifträume| ufträume| ftresorp| ftrett| ftreturn| ftritter| Luftritt| nftüb| pftheit| tdurftrö| Werftr| werftr| Werftu| werftu| Duftas| duftas| Gruftas| gruftas| Luftas| luftas| uftassoz| tdurfta| Kafka| kafka| Piefke| piefkei| Safka| Potrafke| Sprafke| Shirafkan| Tirafkan| Selfkant| Rifkin| fjord| fjör| Ãsafjarðarbær| fjell| fjall| fjäll| fjöll| Prokofjew| Sufjan| Eefje| Astafjew )""", re.X) # Patterns that indicate incorrect ligatures incorrectLigatures = re.compile(r"""( #.*auffo.*| #.*aufli.*| #.*auffi.* Auff[aeiloruyäöü]| auff[aeiloruyäöü]| Brieff| brieff| Cheff| cheff[aäeioöruü]| Dampff| dampff| Dorff[aäeiloöruü]| dorff[aäeiloöruü]| Hanff| hanff| Hoff[aäiloöruü]| Golff| golff| Hoffern| hoffern| Hoffest| Impff| Kampff[aäeoöruü]| kampff[aäeoöruü]| Kopff[aäeoöruü]| kopff[aäeoöruü]| Klopff| klopff| Prüff| prüff| Ruffach| ruffach| Rumpff| Schaffang| Schaffarm| Schaffels| Schilff| schilff| Senff| senffa| senffl| senfl[aä]| Sumpff| sumpff| Tariff| tariff| Tieff| tieff| chaffron| eiffest| ffabrik| ffacet| ffachl| ffachm| ffäch| ffaden| ffäd| ffähig| ffahn| ffahr| ffähr| ffaktor| ffakult| ffall| ffäll| ffalt| ffält| ffami| ffanat| ffans| ffanta| ffarb| ffärb| ffaschi| ffassad| ffäul| ffecht| ffeder| ffedr| ffehl| ffeier| ffeind[els]| ffeld| ffell| ffeile| ffenster| fferien| ffernseh| ffertig| ffestl| ffests| ffetisch| ffetus| ffett| ffetz| ffeud| ffeue| ffilet| ffindung| ffirm| ffolg| ffoli| ffolter| ffond| fforder| fförder| fforell| fform| fförm| fforsch| fforen| fforu| ffoto| fföt| ffracht| ffrag| ffrak| ffrank| ffräs| ffrau| ffreak| ffregat| ffrei| ffremd| ffreq| ffreu| ffrisch| ffried| ffries| ffrist| ffriseu| ffrisur| ffront| ffrosch| ffrösch| ffrucht| ffrücht| ffrüh| ffund| fführ| ffunk| ffühl| ffüll| ffürst| ffuÃ| ffuss| ffüÃ| ffüss| ffutter| ffütter| hoffan| hoffersch| hoffest| hoffete| lffach| offegen| pffach| pffern| pffest| pffels| pffont| pffüh| reiffern| rffan| rffeel| rffest| rffinn| rffleck| straffern| ünff| wurff[aäeiloöruü]| Aufi| aufinstr| aufirr| aufisst| Briefi| briefi| Chefi| chefi| Chefin[a-mo-z]| chefind| Dorfi| dorfi| Hofi| Kampfi| kampfi| Kaufi| kaufi| Laufi| laufi| rüfi| Rumpfi| rumpfi| chafi| chlafi| Strafi| strafi| Tarifi| tarifi| Tiefinn| tiefinn| fidee| fideol| fidentif| fidentit| fidol| fidyll| figel| fikone| fillus| fimman| fimmob| fimmun| fimp| findex| findikat| findiv| findiz| findust| finfekt| finfiz| finfo| finfra| finfus| fingenieur| finhab| finhalat| finhalt| finitia| finjekt| finkont| finnenaus| finnenohr| finnenfl| finnenl| finnenraum| finnenräum| finnens| finner| finnig| finnov| finsass| finsekt| finsel| finserat| finsign| finspek| finsta| finstinkt| finstitu| finstrukt[io]| finstrum| finsuff| finszen| fintars| fintell| fintegr| fintens| finter| finton| fintrig| finvent| finvest| firis| fironi| firre| firru| fisolat| fisolie| fisoth| uffax| Aufl[aeiouyäöü]| aufl| bauflösen| blaufloch| blauflog| Briefl| briefl| Chefl| chefl| Dampfl| dampfl| Dorfl| dorfl| Fünfl| fünfl| Golfl| golfl| Hanfl| hanfl| Hofl| hofl| Huflatt| huflatt| Hufled| hufled| Impfl| impfla| impfle| impflücke| Kampfl| kampfl| Kopfl[äeioöuüy]| kopfl[äeioöuüy]| Köpfl[aäioöuüy]| köpfl[aäioöuüy]| Pfeifl| pfeifl| Pfiffl| pfiffl| Prüfl| prüfl| Reliefl| reliefl| Rufl| rufl| Schafl| schafl| Schiefl| schiefl| Schilfl| schilfl| Schlafl| schlafl| Schleifl| schleifl| Schrumpfl| schrumpfl| Schweifl| schweifl| Senfl| Steifl| steifl| Strafl| strafl| Strumpfl| strumpfl| Sumpfl| sumpfl| Surfl| surfl| Tarifl| tarifl| Tiefl| tiefl| Topfl| topfl| rtopfleg| Torfl| torfl| Tropfl| tropfl| Wurfl| wurfl| Würfl| würfl| alflede| aflied| aflos| aflück| ampfl[aäou]| arflad| äufle| eufle| flaberer| flabor| flage| flagun| flähm| flaminat| flamp| fland| fländ| fläng| flapp| flärm| fflatter| flauf| fläuf| flaun| fleb| alfleder| flehn| flehr| fleiden| flein| fleist| fleit| flektür| fler| fleut| flich| öpflicht| flieb| flief| flift| flig| flila| flinde| fling| flini| flinse| flisch| flist| fliter| flizenz| flobby| flöch| flöff| flohn| flöhn| flok| flord| flösch| flösu| fluft| flung| flust| Gipfle| gipfle| chopfl| lflady| lflast| lflos| nflehm| oflad| ofläd| oflück| opfla| öpfle| orflad| pflaut| pfleier| pflehm| pfleis| pfleu| pflid| pflied| pfloch| pflos| pflös| pflup| pflux| rfläd| rflück| rfluke| reifl| Reifl| Tafle| tafle| urflad| ürfla| urfloch| ürfloch| wafle| wefle| weifle| werfl| affind| ffibel| ffieb| ffigu| ffilm| ffilter| ffinal| ffinte| ffinanz| ffistel| ffixier| iffind| lffing| lffisch| nffing| pffi| reiffing| Stoffi| stoffi| ffinnen| cheffl[aiou]| Griffl| griffl| Offline| offline| Pfiffl| Scheffle| scheffle| Schiffl| schiffl| Stoffl| stoffl| afflu| fflamell| fflast| fflatsch| ffloch| fflos| ifflo| offlad| öffle| offlo| pufflack| taffle| ufflad| uffläd| luffleck| äfle| üffle| Auffl| auffl| eiffleck| ffläch| fflech| ffleisch| fflexib| fflies| fflimm| ffluch| fflüch| fflug| fflüg| fflur| ffluss| fflüs| fflut| iefflieg| iefflog| lfflach| mpffl| opffl| upffl| rfflad| rfflasch| wurfl| ft| Auft[aähioöruüy]| auft[aähioöruüy]| Brieft| brieft| Cheft| cheft[a-z]| Dorft| dorft| Elfte| elfte| Fünft[aäeoöruy]| fünft[aäeoöruy]| Golft| golft[hiruüy]| Greift[eio]| Hanftau| Hoft[aäehioäruüy]| hoft[aähioöruü]| Huftra| Kopft[aäehioäruüy]| Laufte| Prüft[aähioäruüy]| prüft[aähioöruü]| Ruft[aäehioäruüy]| Schaftal| Schaftor| Schaftreib| schaftal| schaftor| schaftreib| Schlaft| schlaft[aähioäruüy]| Schilft[äehiruüy]| schilft[hiruüy]| Senft[aäehioäruy]| Straft[aähioöruüy]| straft[aähioöruüy]| Sufft| Surft[ähiöüy]| Tarift| tarift| Tieft| Torft| torft| Wurft| wurft| fft[aähioöruüy]| Abstreiftest| Ankauftest| Hörprüftest| Hüpftest| Impftest| Kauftest| Klopftest| Kneiftest| Lichtschweiftest| Rückruftest| Schnupftest| Sumpftest| Tropftest| Wettkampftest| tofftest| aftee| auftee| lauftest| eiftie| eiftit| eiftr| elieft| enftei| ftabell| ftablett| ftafel| ftag| ftäg| ftalsg| ftanz| ftänz| ftari| ftarn| ftasse| ftatb| ftaten| ftätig| ftauch| ftaugl| ftaume| ftax| fteam| ftechn| ftedd| fteich| fteigw| fteil| ftelef| fteleph| ftelegr| fteller| ftempel| ftemper| ftempo| ftendenz| ftentak| fteppi| ftermin| ftermit| fterrain| fterrass| fterrin| fterror| ftestat| fteuf| ftext| ftheat| fthem| ftheor| ftherap| ftick| ftief| ftier| ftipp| ftirad| ftisch| ftod| fton| ftön| ftool| ftopf| ftöpf| ftorig| ftour| ftrader| ftradition| fträg| ftrain| ftränk| ftransp| fträume| ftrauri| ftreff| ftresor| ftret| ftrick| ftrieb| ftrief| ftrift| ftrimest| ftritt| ftrott| ftrüb| ftrunk| ftrupp| ftuch| ftüch| ftürk| fturm| ftürm| ftyp| ftyr| ftwist| graftum| graftüm| hoftest| iefta| iefto| ieftö| ieftra| lfta| lfto| lftö| lftum| nftü| nftübchen| ölfte| pft[aähioöruüy]| pftee| pfteig| pftender| rftr| werftrage| rftu| uftas| urfta| urfto| ünftor| fb| fh| fk| fj| fff )""", re.X) def findWrongLigatures(el): return False if re.match(noFalsePositives, el) else re.match(incorrectLigatures, el) filtered_lines = list(filter(findWrongLigatures, lines)) # print(filtered_lines) # Step 3 Write list of words to a file with open('ligature-prevention-wordlist.txt', 'w') as file: file.writelines("%s\n" % line for line in filtered_lines) [-- Attachment #4: Type: text/plain, Size: 493 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2021-04-12 15:52 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-04-03 15:06 Ligature suppression word list denis.maier 2021-04-03 15:20 ` Arthur Rosendahl 2021-04-03 16:02 ` Hans Hagen 2021-04-08 19:37 ` Arthur Rosendahl 2021-04-08 20:51 ` Hans Hagen 2021-04-03 15:58 ` Hans Hagen 2021-04-06 14:59 ` denis.maier 2021-04-06 15:03 ` denis.maier 2021-04-03 16:03 ` Hans Hagen 2021-04-03 16:30 ` Thangalin 2021-04-03 16:43 ` Hans Hagen 2021-04-03 19:21 ` Thangalin 2021-04-03 16:42 ` Hans Hagen [not found] <mailman.248.1617745098.1120.ntg-context@ntg.nl> 2021-04-07 18:19 ` rha17 2021-04-08 8:52 ` denis.maier 2021-04-12 15:52 ` denis.maier
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).