Borrar filtros
Borrar filtros

Using this code in order to get a pig latin code that works for phrases as well

1 visualización (últimos 30 días)
function out = word2piglatin
word = input ( 'Enter a word:' , 's' );
% Check if the first letter of the word is vowel or not
if ismember(word(1), 'aeiouAEIOU' )
out = [word 'way' ]; %Append 'way' to the word
else
out= [word(2:end) word(1) 'ay' ]; %Place the starting letter at the end and append the 'ay'
end
end
  3 comentarios
Walter Roberson
Walter Roberson el 20 de Mzo. de 2020
Editada: Walter Roberson el 21 de Mzo. de 2020
The given code does not produce correct Pig Latin.
  1. what has to be moved is consonant clusters, not single consonants. For example switch has the sw move, not just the s
  2. initial y is treated as a consonant even if it is acting as a vowel in English
  3. internal y is treated as a vowel, ending a consonant cluster, even if it is acting as a consonant in English
  4. compound words must be separated into their parts, such as bedroom being treated as bed room. This is probably the most difficult part, as suffixes can modify a word to not be able to stand alone. For example, "He's a bedroomista" cannot be split into "bed" and "roomista" because "roomista" is not considered a standalone word.
  5. I don't know how to handle contractions at the moment. I suspect that it is "remove the apostrophe and process what is left"

Iniciar sesión para comentar.

Respuestas (1)

Sriram Tadavarty
Sriram Tadavarty el 20 de Mzo. de 2020
Editada: Sriram Tadavarty el 20 de Mzo. de 2020
Hi Charlotte,
You can perform this by entering the phase in the input and then splitting in to words, process and combining. Here is the code:
function out = word2piglatin
phrase = input('Enter a phrase: ','s');
words = strsplit(phrase);
temp = words;
for i = 1:numel(words)
if ismember(words{i}(1), 'aeiouAEIOU' )
temp{i} = [words{i} 'way' ]; %Append 'way' to the word
else
temp{i}= [words{i}(2:end) words{i}(1) 'ay' ]; %Place the starting letter at the end and append the 'ay'
end
end
out = strjoin(temp, ' ');
end
Try this in command window:
>> word2piglatin
Enter a phrase: Hello Everybody
ans =
'elloHay Everybodyway'
Hope this helps.
Regards,
Sriram

Categorías

Más información sobre Text Data Preparation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by