Как повернуть множественные исключительные слова?

Когда вы запускаете Edge (как минимум), создаются два процесса: MicrosoftEdge и MicrosoftEdgeCP.

Вы можете попытаться использовать следующий код, чтобы проверить, открыт ли браузер Edge:

//We need to find the most recent MicrosoftEdgeCP process that is active
Process[] EdgeCPProcessList = Process.GetProcessesByName("MicrosoftEdgeCP");

Process newestEdgeCPProcess = null;

foreach (Process theprocess in EdgeCPProcessList)
{
    if (newestEdgeCPProcess == null || theprocess.StartTime > newestEdgeCPProcess.StartTime)
    {
        newestEdgeCPProcess = theprocess;
        Console.WriteLine("EdgeCP Process: "+theprocess.ProcessName.ToString());
    }
}


Process[] edgeProcessList = Process.GetProcessesByName("MicrosoftEdge");
Process newestEdgeProcess = null;

foreach (Process edgeProcess in edgeProcessList)
{
    if (newestEdgeProcess == null || edgeProcess.StartTime > newestEdgeProcess.StartTime)
    {
        newestEdgeProcess = edgeProcess;
        Console.WriteLine("Edge Process: " + edgeProcess.ProcessName.ToString());
    }
}

Console.ReadKey();

Если мы можем получить ProcessName, значит Edge уже открыт. Приведенный выше код хорошо работает на моей стороне.

19
задан Marc Climent 29 July 2009 в 10:32
поделиться

10 ответов

использовать DeviceIoControl с IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER

или проверить IOCTL_CHANGER_GET_PRODUCT_DATA

-121 --- 31342) (все общие, но все же - 3134002) - все 133, но все же - это общие правила, но все же - 31342) Английский не является языком для слабонервных: -).

Мое собственное предпочтение было бы иметь механизм преобразований вместе с набором преобразований (что на удивление) для выполнения реальной работы. Вы должны были пройти через преобразования (от конкретного к общему) и, когда совпадение было найдено, применить преобразование к слову и остановиться.

Регулярные выражения были бы идеальным подходом к этому из-за их выразительности. Пример набора правил:

 1. If the word is fish, return fish.
 2. If the word is sheep, return sheep.
 3. If the word is "radii", return "radius".
 4. If the word ends in "ii", replace that "ii" with "us" (octopii,virii).
 5. If a word ends with -ies, replace the ending with -y
 6. If a word ends with -es, remove it.
 7. Otherwise, just remove any trailing -s.

Обратите внимание на требование поддерживать данное преобразование в актуальном состоянии. Например, скажем, кто-то добавляет имя таблицы types .

23
ответ дан 30 November 2019 в 03:03
поделиться

Я уверен, что вы можете в Google найти множество библиотек, которые делают это.

Но если вам хочется кодировать, вы можете попробовать обратный процесс: начните с отдельных слов словаря ( скачать бесплатные, используемые aspell или что-то еще), использовать правило множественного числа; собрать отображения и переключить направление. Для «типа» вы должны были бы использовать множественное число с «типами», и обратное отображение работало бы как ожидалось. Несмотря на то, что здесь есть и исключения, немного проще надежно использовать множественное число. Я сделал это некоторое время назад (в середине 90-х ... :-)), для онлайн-игры (MUD), где были объединены описания для нескольких идентичных предметов, и было необходимо автоматическое множественное число.

Также: учитывая, что это Конечное количество таблиц вы можете просто использовать простейший алгоритм, получить необработанный вывод, просмотреть его и исправить ошибки вручную. : -)

0
ответ дан 30 November 2019 в 03:03
поделиться

Я думаю, вы должны использовать список для перевода множественного числа в единственное число для некоторых специальных слов (в вашем примере Types-> Type).

Я думаю, что вы могли бы взглянуть на исходный код из CakePHP (вы можете начать поиск здесь ). Они используют такой алгоритм для своих имен таблиц и полей для автоматического объединения таблиц.


[Edit:] Здесь у вас есть несколько научных работ, чтобы прочитать о «Множественное перегибание на английском языке»

0
ответ дан 30 November 2019 в 03:03
поделиться

Может быть, посмотрите на исходный код чего-то вроде Rails Inflector

3
ответ дан 30 November 2019 в 03:03
поделиться

У Эндрю Питерса есть класс Inflector.NET , который предоставляет методы от множественного к единственному и множественного числа. Как отметил Тал, ни один алгоритм не является непогрешимым, но он охватывает приличное количество неправильных существительных английского языка.

6
ответ дан 30 November 2019 в 03:03
поделиться

Проблема в том, что она основана на общих правилах, но в английском есть (образно) миллиард исключений ... Что вы делаете со словами типа "рыба" или "гуси"?

Кроме того, правила о том, как превратить существительные в единственном числе во множественное число. Обратное отображение не обязательно возможно (рассмотрим «халяву»).

8
ответ дан 30 November 2019 в 03:03
поделиться

See also this answer, which recommends using Morpha (or studying the algorithm behind it).

If you know that the words that you want to lemmatize are plural nouns then you can tag them with NNS to get a more accurate output.

Input example:

$ cat test.txt 
Types_NNS
Pies_NNS
Trees_NNS
Buses_NNS
Radii_NNS
Communities_NNS
Sheep_NNS
Fish_NNS

Output example:

$ cat test.txt | ./morpha -c
Type
Pie
Tree
Bus
Radius
Community
Sheep
Fish
3
ответ дан 30 November 2019 в 03:03
поделиться

В качестве улучшения вы можете использовать правила, которые генерируют несколько возможностей, а затем ищут результаты в словаре, чтобы отсеять невозможные варианты.

Например, замените -ies на -y и - то есть. Пироги превращаются в Py и Pie. В словаре есть только одно из них, поэтому выберите его.

Возможно, вы даже сможете найти словарь с частотной информацией и выбрать наиболее часто встречающееся слово, которое вы генерируете.

Если вы объедините его с упорядоченным списком правил, которые охватывает несколько исключений, вы можете получить довольно хорошую точность.

1
ответ дан 30 November 2019 в 03:03
поделиться

Там хорошая реализация инфлектора в проекте uNnAddIns, который даже реализует экспериментальный испанский инфлектор. Идея заимствована из модуля Rails Inflector .

Его также можно использовать для других вещей, таких как преобразование CamelCase в обычный текст и другие полезности и, например, создание дружественных браузеру URL-адресов из заголовков.

-1
ответ дан 30 November 2019 в 03:03
поделиться

I'm going to try this MorphAdorner: http://morphadorner.northwestern.edu/morphadorner/download/ (Java). Это набор различных типов инструментов обработки НЛП, и вы можете протестировать их на онлайн-примерах. Для вашей проблемы (это тоже моя проблема) есть инструмент Pluralizer: http://morphadorner.northwestern.edu/morphadorner/pluralizer/example/

0
ответ дан 30 November 2019 в 03:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: