Магистр Йода - теория и практика

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Магистр Йода - теория и практика

Сообщение BV » 09.06.2005 (Чт) 15:33

Дискуссия о Магистре Йоде.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 15:37

Надо было назвать "Теория и практика" :lol:
И так, кто может точно сформулировать принцип, по которому Магистр Йода строит свои фразы????

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 15:44

Возможно, суть диалекта Йоды в том, что он ставит местоимения в конец предложения.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.06.2005 (Чт) 15:44

Может и не в тему (сам я ни один фильм про звёздные войны не видел), но про Йоду:

==========================================================================
* From: "Aleksej R Serdyukov" <Aleksej R Serdyukov@f24000.n5020.z2.fidonet.org>
* Date: 06 Jun 05 21:18:12
* To: All
* Subj: [FWD] [Java] The real story about how Anakin Skywalker became Darth Vad
==========================================================================

Subject: [FWD] [Java] The real story about how Anakin Skywalker became Darth Vad

============================================================================
* Переслал Aleksej R. Serdyukov (2:5020/24000)
* Обл. : XSU.HACKER (XSU.HACKER)
* От : Ilya V. Vasilyev, 2:5020/400 (06 Jun 05 21:56)
* Кому : All
* Тема : [Java] The real story about how Anakin Skywalker became Darth Vader
============================================================================
Hi, All!

Hикто Жабу не изучает? :)

http://weblogs.java.net/blog/kirillcool ... story.html
=== ===
Here it is - the JDK 5.0-compliant story behind "Revenge of the Sith". See
it in all its glory, using the new java.util.concurrency package:
=== ===
public class Princess implements ExecutorService {
public static final Princess PADME = new Princess();

// private member
private StarShip ship;

private Princess() {
this.setDefaultLocale(Locale.EN);
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
Princess.this.changeHairStyle();
Princess.this.changeClothes();
}
};
timer.scheduleAtFixedRate(task, new Date(), 1000);
}
}

public class JediKnight implements ExecutorService {
public static final JediKnight ANAKIN = new JediKnight(false);
public static final JediKnight OBI_WAN = new JediKnight(false);
public static final JediKnight YODA = new JediKnight(true);

private JediKnight(boolean isYoda) {
if (!isYoda) {
this.setDefaultLocale(Locale.EN);
}
else {
Locale yodaLocale = Locale.EN;
this.setDefaultLocale(Utils.shuffle(yodaLocale));
}
this.setLightSabre(LightSabreFactory.getInstance());
this.setGoodLooking(!isYoda);
}
}

public class Sith {
public static final Sith LORD = new Sith();

private Sith() {
this.setDefaultLocale(Locale.EN);
this.setClothes(DarkRobeFactory.getInstance());
this.setLightSabre(LightSabreFactory.getInstance());
}
}

public static main() {
// The following line has been commented out so as not
// to confuse fans who never did it

// Utils.initChildren(JediKnight.ANAKIN, Princess.PADME);

// Use JDK 5.0 concurrency package
Future<Set<Child>> padmeFuture = Princess.PADME.submit(
new Callable<Set<Child>>() {
public Set<Child> call() {
try {
int weeks = (int)(36+4.0*Math.random());
wait(weeks*7*24*60*60*1000);
this = null;
System.gc();
}
finally() {
Child boy = new Child("Luke");
Child girl = new Child("Leia");
Set<Child> result = new HashSet<Child>();
result.add(boy);
result.add(girl);
return result;
}
}
}
);

if (JediKnight.ANAKIN.poll(padmeFuture) instanceof ThreadDeath) {
JediKnight.ANAKIN.alarm();

// use some marketing ideas
Sith.LORD.promise(JediKnight.ANAKIN, new
RuntimePermission("object.restore.afterGC"));
Sith.LORD.promise(JediKnight.ANAKIN, new
RuntimePermission("force.power.dark.*"));
Sith.LORD.promise(JediKnight.ANAKIN, new
RuntimePermission("force.power.*"));
Sith.LORD.promise(JediKnight.ANAKIN, new RuntimePermission("force.*"));

JediKnight.ANAKIN.setInternalName("Darth Vader");

JediKnight.ANAKIN.promise(Princess.PADME, new RuntimePermission("*"));

Princess.PADME.alarm();
Princess.PADME.boardShip();

// Use JDK 5.0 concurrency package
Future<StarShip> anakinFuture =
JediKnight.OBI_WAN.submit(
new Callable<StarShip>() {
public RuntimePermission call() {
try {
Class princessClass = Princess.getClass();
Field shipField = princessClass.getDeclaredField("ship");
// will never throw SecurityException on Jedi Knight
shipField.setAccessible(true);
JediKnight.this.add(new
RuntimePermission("object.ship.board.*"));
return (StarShip)shipField.get(Princess.PADME);
}
catch (SecurityException se) {
// never supposed to happen to Jedi Knight
System.out.println("Internal error. Contact George Lucas.");
System.reboot();
}
}
}
);

StarShip padmeShip = anakinFuture.call();
padmeShip.put(JediKnight.OBI_WAN);

JediKnight.ANAKIN.see(Princess.PADME);
Princess.PADME.removeLove(JediKnight.ANAKIN);

JediKnight.ANAKIN.see(JediKnight.OBI_WAN);
JediKnight.ANAKIN.removeLove(Princess.PADME);

JediKnight.OBI_WAN.removeLimbs(JediKnight.ANAKIN);
// note - absolutely no need for GC, Anakin will be collected
automatically.

ReferenceQueue<JediKnight> sithWatchList = new
ReferenceQueue<JediKnight>();
PhantomReference<JediKnight> anakinRef = sithWatchList.remove();
JediKnight anakinPhantom = anakinRef.get();

Sith DARTH_VADER = Sith.LORD.assemble(anakinPhantom,
LimbFactory.getSpareInstances());
MouthPiece newMouthPiece = MouthPieceFactory.getInstance();
// no need to check that it works - guaranteed to work with no noise
DARTH_VADER.add(newMouthPiece);
DARTH_VADER.rise();
}
else {
// TODO - create alternative scenario for Sith revenge
}
}
=== ===

Bye,
Ilya V. Vasilyev

-+- ifmail v.2.15dev5.3
+ Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
============================================================================

Hi, All!

mu'o
http://parodise.geekworld.dk/ - song parodies in different languages.
--- GoldED+/W32 1.1.5-040120
* Origin: Delete Software Limited, Moscow, Russia. (2:5020/24000)


==========================================================================
Изображение

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 15:51

Гхм... Да... Хороша... ..."программка" :)

P.S.
RayShade, переименуй please тему в "Магистр Йода - теория и практика...".
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 15:57

:thumleft: :lol:
BV
Йода, кстати, не просто местоимения в конец ставит, он целиком порядок слов меняет.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 16:00

А принцип-то каков?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 09.06.2005 (Чт) 16:02

Боюсь, что "как переводчик захочет"... :(

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 16:06

"В звездолёт ближайший стреляйте вы."

Так, кажется...
Это из SW II... Местоимение в конце, существительное перед прилагательным...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 16:07

uhm
Ну, общий принцип можно увидеть во всех частях - или во всех переводчит одинаково захотел, или по-другому не переведешь :wink:

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 16:10

Ну попробуй сформулировать как-то этот принцип.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 09.06.2005 (Чт) 16:12

блин, вот говорю уже целый день как Йода и теперь отвыкнуть не могу 8) :D

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 16:52

Ну хорошо.
Второй эпизод, Йода: "Недостаток этот среди джедаев заметен стал очень"

А как бы сказал обычный человек: "Этот недостаток стал очень заметен среди джедаев"

Получается, что он меняет местами определения и существительные, к оторым они относятся, обстоятельства и глаголы.....

Теперь вопрос: как распознать в предложении части речи?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 16:56

Вот и пришли к моему ИИ! :lol:
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Keen
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 25.04.2004 (Вс) 10:45
Откуда: Россия => Москва

Сообщение Keen » 09.06.2005 (Чт) 16:59

На какие примитивные уловки идут западные кинорежисеры и сценаристы, чтобы создать очередной эпизод величайшего "киношедевра".

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 17:14

BV
А ты уже решил вопрос с распознаванием частей речи?
Keen
Это на какие же?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 09.06.2005 (Чт) 17:18

Не, общий принцип понятен: перестановка слов в предложении. Понятно даже, что слова переставляются не произвольным образом, а так, чтобы соседние слова в исходной фразе были близко и в "переведенной". Но конкретного принципа, ИМХО, нет - несколькими способами слова переставить можно (или способами несколькими переставить можно слова? :roll: )

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 17:20

Ariman писал(а):А ты уже решил вопрос с распознаванием частей речи?


Да над этим я бьюсь последних два месяца!
Всё ведёт к тому, что нужна обширная БД, где каждое слово будет индексировано под определённые правила, согласно которым с ним можно будет работать в предложении. Простым кодом мне это реализовать не удалось (за основу я взял пример d3drm).
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 17:25

BV
Ну, во например - глаголы: их, как мне кажется можно выделить по строению - наличию -ить -ит -ся и т.д.
Местоимений не так много, их можно и в базу загнать.
Прилагатеьные..... По окончаниям -ый -ий -ая
Наречия по последней букве...
И т.д., я думаю, что можно реализовать! А все что не отнесется к группам - существительные!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 17:33

Всё бы хорошо, но кто создаст такую базу?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 17:36

BV
Не понял, каую базу? Я как раз и говорю, что нужно реализоваывть БЕЗ базы....... Нужно определить морфологические особенности частей речи.

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 09.06.2005 (Чт) 17:39

Ха! И как ты это сделаешь? Одно и то же оуончание может быть, как и у прилагательного, так и у наречия, краткий глагол - причастие, прого особенностей Русского языка придется учесть.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 17:47

Ариман, я понял, что ты имел ввиду:

Код: Выделить всё
Private Sub cmdReadString_Click()
    Dim strArray() As String, strTemp As String
    Dim i As Long, lngRetval As Long
    ReDim strArray(Len(txtString.Text))
    Call Split(strArray, Chr$(32))
    For i = LBound(strArray) To UBound(strArray)
        strTemp = strArray(i)
        lngRetval = InStr(strTemp, "ться") 'If Right$(strTemp,4) = "ться" Then
        '...
End Sub



Только вот это не сработает.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 17:48

Oxygen

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

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 17:51

BV
Нужно на том же принципе, но более точное....... Не только окончания смотреть.....

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 17:57

Хорошо, можешь привести пример в виде VB кода, как отличить (без БД) наречие от существительного с одинаковым окончанием?
Последний раз редактировалось BV 09.06.2005 (Чт) 18:42, всего редактировалось 2 раз(а).
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 18:00

BV
Привиди пример глагола и прилагательного с одинаковым окончанием.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 18:01

А я только исправил... :)
Ошибся маленько.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 18:07

Ну привиди пример слов, которые надо различить.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 18:17

Сейчас так не вспомню, но вот первое, что пришло на ум:

Напрямик

Ключник
Домик
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 122

    TopList