필터 지우기
필터 지우기

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

조회 수: 1 (최근 30일)
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
Walter Roberson
Walter Roberson 2020년 3월 20일
편집: Walter Roberson 2020년 3월 21일
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"

댓글을 달려면 로그인하십시오.

답변 (1개)

Sriram Tadavarty
Sriram Tadavarty 2020년 3월 20일
편집: Sriram Tadavarty 2020년 3월 20일
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

카테고리

Help CenterFile Exchange에서 Text Data Preparation에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by